Да, има голяма разлика между NULL
стойност и празна/празна стойност.
Ето един ресурс който описва разликите.
Когато myText IS NULL :
myText IS NOT NULLоценява наFALSEmyText != ''оценява на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.