为什么这个查询返回一个空集:
select p.iuser_id,p.produit_id from portefeuille p
WHERE produit_id=48
AND p.iuser_id NOT IN (NULL);
而这个:
select p.iuser_id,p.produit_id from portefeuille p
WHERE produit_id=48
LIMIT 5
返回结果如
72968, 48
106967, 48
7381, 48
81678, 48
194250, 48
并且这些值都不是 NULL 或应该等于 NULL。(为了简洁起见,我添加了限制 5,并且我使用的是 MySql 5.1)
编辑:在这里,我将问题缩小到 NOT IN(NULL)。原始查询有一个子查询,其中一些行包含 NULL,如下所示:
WHERE user_id NOT IN( select user_id from mailsubscriptions )
并且一些 user_id 为 NULL,但集合中只有一个 NULL 污染了整个查询。