MySQL →  Немного о NULL-ах

Наверняка все знают о таком понятии в SQL как NULL.

NULL — это не 0, это не 1, это не пустая строка. NULL обозначает что на данный момент неизвестно какое значение хранится в базе данных.

Теперь маленькое исследование.

1. Что будет результатом логической операции

FALSE OR NULL


Поскольку неизвестно, чем именно является NULL — TRUE или FALSE, результат запроса тоже неизвестный, поэтому результат этой операции — NULL

2. Что будет результатом логической операции

TRUE OR NULL


Поскольку один из операндов логической операции — TRUE, то независимо от значения второго операнда результат операции будет TRUE. MySQL следует этой логике и выдает результат — TRUE

3. Что будет в результате арифмитической операции

0*NULL


Можно было бы легко следовать логике, аналогичной второму вопросу и прийти к тому что в результате будет 0. Но как показала практика у MySQL на этот счет своя логика. Результат этой операции будет NULL.

Вот такая арифметика.
2


Вставка изображения
Файл:
Ссылка:
Выравнивание:
Описание:
комментарии(5): 
igorok 2 февраля 2009, 14:31 #
2 
полезно:)
правда, не каждый день встречается, но знать полезно%)
Shaetanna 22 марта 2009, 08:56 #
0 
Мне недавно пришлось столкнуться с NULL-значениями. Как в PHP определить, является ли элемент массива NULL? ;-)
igorok 23 марта 2009, 12:14 #
1 
а is_null уже не в моде?
<?
if(is_null($some_array["element"])) echo "NULL";
else echo "NOT NULL";
?>
qubit 8 апреля 2009, 00:58 #
комментарий был удален
ekimoff 28 ноября 2009, 13:06 #
1 
Более того, NULL не равно NULL.
Небольшой пример, как null может сыгарть злую шутку при выборке из базы.
Кстати, в PHP null — это отдельный тип данных (как int или str).

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.