Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Unterschied zwischen MySQL IS NOT NULL und !=''

Ja, es gibt einen großen Unterschied zwischen einem NULL Wert und einen leeren/leeren Wert.

Hier ist eine Ressource das beschreibt die Unterschiede.

Wenn myText IS NULL :

  • myText IS NOT NULL wird zu FALSE ausgewertet
  • myText != '' wird zu NULL ausgewertet (was sich im Wesentlichen genauso verhält wie FALSE würde in diesem speziellen Fall, den Sie geschrieben haben)

Sie sollten sich jedoch nicht angewöhnen, sie gleich zu behandeln, da sie sich meistens unterschiedlich verhalten:Zum Beispiel:

Angenommen, Sie haben eine Tabelle tbl :

id   text
1    NULL
2    
3    abc

Hinweis: 1 enthält einen NULL Wert und 2 enthält eine leere Zeichenfolge ('' ).

Wenn Sie die folgende Abfrage ausführen:

SELECT * FROM tbl WHERE text != ''

... es wird Datensatz 3 zurückgegeben.

Wenn Sie die folgende Abfrage ausführen:

SELECT * FROM tbl WHERE text IS NOT NULL

... es werden die Datensätze 2 und 3 zurückgegeben.