MySQL →
Немного о NULL-ах
Наверняка все знают о таком понятии в SQL как NULL.
NULL — это не 0, это не 1, это не пустая строка. NULL обозначает что на данный момент неизвестно какое значение хранится в базе данных.
Теперь маленькое исследование.
1. Что будет результатом логической операции
Поскольку неизвестно, чем именно является NULL — TRUE или FALSE, результат запроса тоже неизвестный, поэтому результат этой операции — NULL
2. Что будет результатом логической операции
Поскольку один из операндов логической операции — TRUE, то независимо от значения второго операнда результат операции будет TRUE. MySQL следует этой логике и выдает результат — TRUE
3. Что будет в результате арифмитической операции
Можно было бы легко следовать логике, аналогичной второму вопросу и прийти к тому что в результате будет 0. Но как показала практика у MySQL на этот счет своя логика. Результат этой операции будет 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.
Вот такая арифметика.



правда, не каждый день встречается, но знать полезно%)
if(is_null($some_array["element"])) echo "NULL";
else echo "NOT NULL";
?>
Небольшой пример, как null может сыгарть злую шутку при выборке из базы.
Кстати, в PHP null — это отдельный тип данных (как int или str).
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.