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.
Вот такая арифметика.



