Есть ли любое различие между MySQL
IF (myText IS NOT NULL) THEN
и
IF (myText != '') THEN
Да, существует большая разница между значением 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.
Есть разница. Если значение столбца по умолчанию "NULL", то если для поля не было задано никаких данных, оно действительно является нулевым. Однако если значение поля было обновлено как '', то оно не NULL, а пустое.
Дополнительную информацию смотрите здесь Ссылка
Да, есть разница.
Проще говоря, myText IS NOT NULL указывает, что myText имеет какое-то значение, которое тоже может быть "" .
Где myText! = '' указывает, что он возвращает ИСТИНА, если myText НЕ содержит пустую строку .