Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como a subconsulta NOT IN funciona com valores NULL?


A razão é que, de acordo com a especificação SQL, Foo IN(A,B,C) traduz para ( Foo = A Or Foo = B Or Foo = C ) . Assim, se tivermos Foo In(Null, 1, 2) obtemos Foo = Null Or Foo = 1 Or Foo = 2 . Desde Foo = Null é sempre UNKNOWN e avaliado como False para fins de filtragem, Nulos em sua expressão IN não retornarão resultados.