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')