Mysql
 sql >> Base de données >  >> RDS >> Mysql

Différence entre MySQL N'EST PAS NULL et !=''

Oui, il y a une grande différence entre un NULL valeur et une valeur vide/vide.

Voici une ressource qui décrit les différences.

Lorsque myText IS NULL :

  • myText IS NOT NULL évalue à FALSE
  • myText != '' évalue à NULL (qui se comporte essentiellement de la même manière que FALSE serait dans ce cas précis que vous avez écrit)

Cependant, vous ne devez pas prendre l'habitude de les traiter de la même manière, car la plupart du temps, ils se comporteront différemment :par exemple :

Supposons que vous ayez une table tbl :

id   text
1    NULL
2    
3    abc

Remarque : 1 contient un NULL valeur, et 2 contient une chaîne vide ('' ).

Si vous exécutez la requête suivante :

SELECT * FROM tbl WHERE text != ''

... il renverra l'enregistrement 3.

Si vous exécutez la requête suivante :

SELECT * FROM tbl WHERE text IS NOT NULL

... il renverra les enregistrements 2 et 3.