NULL != NULL — это True?
NULL в базах данных означает “ничего”, отсутствие данных, вместо которых "неизвестно что". Казалось бы звучит просто, но в то же время коварное NULL постоянно хочет обвести вокруг пальца. Поэтому важно помнить об его особенностях.
NULL не равен ничему, в том числе другому NULL (как одна неизвестность может быть равна другой?). При этом и выражение NULL != NULL не будет истинным, так как нельзя сравнить неизвестность с неизвестностью.
Распространённая ошибка поиск по условию WHERE column_name = NULL. Результатом такого условия будет FALSE. Вместо этого для сравнения используется оператор IS NULL (или IS NOT NULL, если нужно найти все не NULL значения).
Ну и, конечно, не стоит забывать, что NULL ни в коем случае не эквивалентен 0.
Во время работы с запросами к БД важно понимать логику работы с NULL, так как без этого результаты могут быть далеки от реальности. Другие особенности работы с NULL рассмотрим в следующих заметках.
#sql #null
Post #15
110