something <> NULL
évaluera à NULL
. Et s'il est utilisé dans une requête, c'est à peu près la même chose que 0
(ou false
).
Rappelez-vous que SQL utilise logique à trois valeurs et non une simple logique binaire.
Vous devrez peut-être vérifier NULL explicitement en utilisant IS NULL
:
... OR THING IS NULL
Alternativement, vous pouvez utiliser le NULL-safe est égal à opérateur <=>
avec une négation (c'est spécifique à MySQL, cependant, ce n'est pas du SQL standard
):
... AND NOT (THING <=> 'This')