something <> NULL
será avaliado como NULL
. E se usado em uma consulta que é praticamente igual a 0
(ou false
). Lembre-se de que o SQL usa lógica de três valores e não lógica binária simples.
Você pode precisar verificar NULL explicitamente usando
IS NULL
:... OR THING IS NULL
Alternativamente, você pode usar os NULL-safe equals operador
<=>
com uma negação (isso é específico do MySQL, no entanto, não é SQL padrão
):... AND NOT (THING <=> 'This')