Warum berücksichtigt das Schlüsselwort MYSQL IN keine NULL-Werte?

Ich benutze die folgende Abfrage:

select count(*) from Table1 where CurrentDateTime>'2012-05-28 15:34:02.403504' and Error not in ('Timeout','Connection Error');

Überraschenderweise enthält diese Anweisung keine Zeilen mit dem Fehlerwert NULL. Es ist meine Absicht, nur Zeilen mit dem Fehlerwert 'Timeout' (oder 'Verbindungsfehler') zu filtern. Ich muss eine zusätzliche Bedingung angeben (ODER Fehler ist NULL), um das richtige Ergebnis zu erhalten.

Warum filtert MYSQL Ergebnisse mit NULL-Werten heraus? Ich dachte, dass IN-Schlüsselwort ein boolesches Ergebnis (1/0) zurückgeben würde und jetzt verstehe ich, dass einige MYSQL-Schlüsselwörter keine booleschen Werte zurückgeben, es könnte auch NULL zurückgeben .... aber warum behandelt es NULL als speziell?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage