Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment la sous-requête NOT IN fonctionne-t-elle avec les valeurs NULL ?

La raison est que selon la spécification SQL, Foo IN(A,B,C) se traduit par ( Foo = A Or Foo = B Or Foo = C ) . Ainsi, si nous avons Foo In(Null, 1, 2) on obtient Foo = Null Or Foo = 1 Or Foo = 2 . Puisque Foo = Null est toujours UNKNOWN et évalué à False à des fins de filtrage, Nulls dans votre expression IN ne renverra aucun résultat.