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 zuFALSE
ausgewertetmyText != ''
wird zuNULL
ausgewertet (was sich im Wesentlichen genauso verhält wieFALSE
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.