У меня есть столбец с именем CODE в таблице MySQL, который может быть NULL. Скажем, у меня есть несколько строк с CODE = 'C', которые я хочу игнорировать в моем наборе результатов выбора. В моем наборе результатов может быть либо CODE = NULL, либо CODE! = 'C'.
Следующий запрос не возвращает строку с CODE как NULL:
SELECT * from TABLE where CODE!='C'
Но этот запрос работает, как и ожидалось, и я знаю, что это правильный способ сделать это.
SELECT * from TABLE where CODE IS NULL OR CODE!='C'
Мой вопрос: почему наличие только CODE! = 'C' не возвращает строки, где CODE = NULL? Определенно 'C' не NULL. Мы не сравниваем никакой ценности с персонажем здесь. Может ли кто-нибудь пролить свет на то, почему это так не работает?