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 NULLutvärderas tillFALSEmyText != ''utvärderas tillNULL(som i huvudsak beter sig på samma sätt somFALSEskulle 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.