Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie funktioniert die NOT IN-Unterabfrage mit NULL-Werten?

Der Grund ist, dass gemäß der SQL-Spezifikation Foo IN(A,B,C) übersetzt zu ( Foo = A Or Foo = B Or Foo = C ) . Also, wenn wir Foo In(Null, 1, 2) haben wir erhalten Foo = Null Or Foo = 1 Or Foo = 2 . Da Foo = Null ist immer UNKNOWN und zu False ausgewertet zu Filterzwecken geben Nullen in Ihrem IN-Ausdruck keine Ergebnisse zurück.