Почему ключевое слово MYSQL IN не учитывает значения NULL

Я использую следующий запрос:

select count(*) from Table1 where CurrentDateTime>'2012-05-28 15:34:02.403504' and Error not in ('Timeout','Connection Error');

Удивительно, но этот оператор не включает в себя строки, имеющие значение Error в качестве NULL. Мое намерение состоит в том, чтобы фильтровать только те строки, в которых значение Error равно «a timeout». (или) «Ошибка соединения». Мне нужно дать дополнительное условие (ИЛИ ошибка равна NULL), чтобы получить правильный результат.

Почему MYSQL отфильтровывает результаты со значениями NULL? Я думал, что ключевое слово IN вернет логический результат (1/0), и теперь я понимаю, что некоторые ключевые слова MYSQL не возвращают логические значения, он также может возвращать NULL .... но почему он обрабатывает NULL как особый?

Ответы на вопрос(6)

Ваш ответ на вопрос