Mysql
 sql >> Database >  >> RDS >> Mysql

Come funziona la sottoquery NOT IN con i valori NULL?

Il motivo è che secondo la specifica SQL, Foo IN(A,B,C) si traduce in ( Foo = A Or Foo = B Or Foo = C ) . Quindi, se abbiamo Foo In(Null, 1, 2) otteniamo Foo = Null Or Foo = 1 Or Foo = 2 . Poiché Foo = Null è sempre UNKNOWN e valutato in False ai fini del filtraggio, i valori Null nell'espressione IN non restituiranno risultati.