Ja, der er stor forskel på en NULL
værdi og en tom/tom værdi.
Her er én ressource der beskriver forskellene.
Når myText IS NULL
:
myText IS NOT NULL
evalueres tilFALSE
myText != ''
evalueres tilNULL
(som i det væsentlige opfører sig på samme måde somFALSE
ville du i dette specifikke tilfælde skrev)
Du bør dog ikke vænne dig til at behandle dem ens, da de oftest vil opføre sig anderledes:For eksempel:
Antag, at du har en tabel tbl
:
id text
1 NULL
2
3 abc
Bemærk: 1 indeholder en NULL
værdi, og 2 indeholder en tom streng (''
).
Hvis du kører følgende forespørgsel:
SELECT * FROM tbl WHERE text != ''
... det vil returnere post 3.
Hvis du kører følgende forespørgsel:
SELECT * FROM tbl WHERE text IS NOT NULL
... det vil returnere post 2 og 3.