sql >> Base de Datos >  >> RDS >> Mysql

La diferencia entre MySQL NO ES NULO y !=''

Sí, hay una gran diferencia entre un NULL valor y un valor en blanco/vacío.

Aquí está un recurso que describe las diferencias.

Cuando myText IS NULL :

  • myText IS NOT NULL se evalúa como FALSE
  • myText != '' evalúa a NULL (que esencialmente se comporta igual que FALSE sería en este caso específico que escribiste)

Sin embargo, no debes acostumbrarte a tratarlos igual, ya que la mayoría de las veces se comportarán de manera diferente:Por ejemplo:

Suponga que tiene una tabla tbl :

id   text
1    NULL
2    
3    abc

Nota: 1 contiene un NULL valor, y 2 contiene una cadena vacía ('' ).

Si ejecuta la siguiente consulta:

SELECT * FROM tbl WHERE text != ''

... devolverá el registro 3.

Si ejecuta la siguiente consulta:

SELECT * FROM tbl WHERE text IS NOT NULL

... devolverá los registros 2 y 3.