2.13: Работа со значениями NULL в таблице MySQL
Главная Страница » Книги по PHP » MySQL уроки для начинающих с нуля » Работа со значениями NULL в таблице MySQL
Значение NULL может удивлять, пока вы не привыкнете к нему. По своей концепции, NULL означает отсутствие средств для оценки значения или просто неизвестное (неопределенное) значение, и оно обрабатывается несколько подругому, чем обычные значения.
Для проверки на NULL вы не можете использовать арифметические операторы, например =, < или != (не равно). Чтобы показать это, попробуйте следующий запрос:
mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1! = NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+
Очевидно, что никакого толку от таких сравнений нет и не будет. Используйте взамен операторы IS NULL и IS NOT NULL:
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------|---------------|
| 1 IS NULL | 1 IS NOT NULL |
+-----------|---------------|
| 0 | 1 |
+-----------|---------------|
В MySQL 0 или NULL означает false (ложь) в логических операциях, а все остальное значит true (истину). Заданное по умолчанию значение истины в булевых (логических) операциях равно 1.
Эта специальная обработка NULL является причиной того, почему в предыдущем разделе было необходимо определить, какие животные умерли, используя именно death IS NOT NULL вместо death!=NULL.