Разница между MySQL не равна NULL и!= "

есть ли разница между MySQL

IF (myText IS NOT NULL) THEN

и

IF (myText != '') THEN

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.


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

простыми словами, myText не является NULL указывает, что myText имеет некоторое значение, которое может быть " слишком.

где myText != " указывает, что он возвращает TRUE, если myText не содержит пустая строка.


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

см. здесь для получения дополнительной информации ссылке