Ja, det är stor skillnad mellan en NULL
värde och ett tomt/tomt värde.
Här är en resurs som beskriver skillnaderna.
När myText IS NULL
:
myText IS NOT NULL
utvärderas tillFALSE
myText != ''
utvärderas tillNULL
(som i huvudsak beter sig på samma sätt somFALSE
skulle du i det här specifika fallet skrev)
Du bör dock inte ta för vana att behandla dem på samma sätt, eftersom de oftast kommer att bete sig annorlunda:Till exempel:
Anta att du har en tabell tbl
:
id text
1 NULL
2
3 abc
Obs! 1 innehåller en NULL
värde och 2 innehåller en tom sträng (''
).
Om du kör följande fråga:
SELECT * FROM tbl WHERE text != ''
... det kommer att returnera post 3.
Om du kör följande fråga:
SELECT * FROM tbl WHERE text IS NOT NULL
... det kommer att returnera post 2 och 3.