something <> NULL
wird zu NULL
ausgewertet
. Und wenn es in einer Abfrage verwendet wird, ist das ziemlich dasselbe wie 0
(oder false
).
Denken Sie daran, dass SQL dreiwertige Logik verwendet und nicht einfache binäre Logik.
Möglicherweise müssen Sie mit IS NULL
explizit auf NULL prüfen :
... OR THING IS NULL
Alternativ können Sie die NULL-safe equals verwenden Operator <=>
mit einer Negation (dies ist jedoch MySQL-spezifisch, es ist kein Standard-SQL
):
... AND NOT (THING <=> 'This')