Да, существует большая разница между значением 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.