Различие между MySQL IS NOT NULL и! =''

Есть ли любое различие между MySQL

IF (myText IS NOT NULL) THEN

и

IF (myText != '') THEN
6
задан Mithun Sreedharan 17 June 2010 в 07:51
поделиться

3 ответа

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

11
ответ дан 8 December 2019 в 17:18
поделиться

Есть разница. Если значение столбца по умолчанию "NULL", то если для поля не было задано никаких данных, оно действительно является нулевым. Однако если значение поля было обновлено как '', то оно не NULL, а пустое.

Дополнительную информацию смотрите здесь Ссылка

1
ответ дан 8 December 2019 в 17:18
поделиться

Да, есть разница.

Проще говоря, myText IS NOT NULL указывает, что myText имеет какое-то значение, которое тоже может быть "" .

Где myText! = '' указывает, что он возвращает ИСТИНА, если myText НЕ содержит пустую строку .

2
ответ дан 8 December 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: