Да, има голяма разлика между NULL
стойност и празна/празна стойност.
Ето един ресурс който описва разликите.
Когато myText IS NULL
:
myText IS NOT NULL
оценява наFALSE
myText != ''
оценява наNULL
(което по същество се държи по същия начин катоFALSE
би в конкретния случай, който написахте)
Въпреки това, не трябва да придобивате навика да ги третирате еднакво, тъй като през повечето време те ще се държат различно:Например:
Да приемем, че имате таблица tbl
:
id text
1 NULL
2
3 abc
Забележка: 1 съдържа NULL
стойност, а 2 съдържа празен низ (''
).
Ако изпълните следната заявка:
SELECT * FROM tbl WHERE text != ''
... ще върне запис 3.
Ако изпълните следната заявка:
SELECT * FROM tbl WHERE text IS NOT NULL
... ще върне записи 2 и 3.