sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo funciona la subconsulta NOT IN con valores NULL?

El motivo es que, según la especificación SQL, Foo IN(A,B,C) se traduce a ( Foo = A Or Foo = B Or Foo = C ) . Por lo tanto, si tenemos Foo In(Null, 1, 2) obtenemos Foo = Null Or Foo = 1 Or Foo = 2 . Desde Foo = Null siempre es UNKNOWN y evaluado como False con fines de filtrado, los valores nulos en su expresión IN no arrojarán resultados.