SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.05.2016 12:04:58

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

При условии <> не находятся NULL значения

Опытным путём обнаружили, что если есть значение NULL, то запись не вернётся при поиске по `field`<>'value'. Честно говоря, для меня неожиданная логика, ведь NULL так же <>'value'.

Так всегда было или особенность версии? Работаем с 5.5. Можно ли заставить мускль находить и NULL значения в данном случае?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#2 11.05.2016 13:06:12

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: При условии <> не находятся NULL значения

Любая операция с NULL дает ложный результат. Насколько я знаю, это не свойство версии, а общее построение. Используйте ISNULL(value)

Неактивен

 

#3 11.05.2016 13:45:52

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: При условии <> не находятся NULL значения

Это если найти именно NULL значения, то да, с этим понятно.
У нас поле имеет ENUM из нескольких значений + NULL. Нужно было найти все значения, кроме одного конкретного, в итоге получили всё ожидаемое, кроме NULL, хотя ожидали и их получить.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#4 11.05.2016 13:54:10

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: При условии <> не находятся NULL значения

mysql> select null=null;
+-----------+
| null=null |
+-----------+
|      NULL |
+-----------+
1 row in set (0.00 sec)
 

Интересное откровение после 15 лет работы с мусклем big_smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#5 11.05.2016 14:43:40

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: При условии <> не находятся NULL значения

Тогда OR ISNULL(value) или работайте с NOT NULL полями.

Неактивен

 

#6 11.05.2016 21:32:15

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: При условии <> не находятся NULL значения

Neval написал:

mysql> select null=null;
+-----------+
| null=null |
+-----------+
|      NULL |
+-----------+
1 row in set (0.00 sec)
 

Интересное откровение после 15 лет работы с мусклем big_smile

Очень даже логично - равно ли одно неизвестное значение другому неизвестному? Конечно же это неизвестно.  smile
Интересная статья про null в mysql.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson