Разница между MySql <> NULL и NOT NULL - PullRequest
0 голосов
/ 25 января 2019

В моей БД есть столбец varchar (255) и для некоторых записей он содержит нулевые значения, когда я уволил это

SELECT * FORM my_table where some_column <> NULL;

ничего не возвращается

но когда увольняют

SELECT * FORM my_table where some_column IS NOT NULL;

Я получил нужные записи

Вы можете объяснить, в чем заключается основное различие между ними и когда использовать операторы <> и! =.

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Из справки Mysql 8:

Нельзя использовать операторы арифметического сравнения, такие как =, <или <>, для проверки на NULL.Поскольку результат любого арифметического сравнения с NULL также равен NULL, вы не можете получить какие-либо значимые результаты от таких сравнений.

0 голосов
/ 25 января 2019

В MySQL строковый столбец может быть пустым = '' или NUL (не назначенные значения)

, поэтому вы должны использовать для не пустой

  SELECT * FORM my_table where some_column <> '';

или

  SELECT * FORM my_table where some_column  != '';

или не равно значению

  SELECT * FORM my_table where some_column <> 'my_value';
  SELECT * FORM my_table where some_column != 'my_value';

для ненулевого значения вы должны использовать специальный оператор IS NOT NULL

SELECT * FORM my_table where some_column IS NOT NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...