6

我认为NOT IN行为与!=查询相同。但是使用的查询!=比使用的查询返回更多的行NOT IN

SELECT  count(A.NO)
FROM A
WHERE
A.CODE != 'a' 
AND 
A.CODE  != 'b'
AND
A.CODE  != 'c'
AND 
A.NAME  != 'd' 
AND
A.NAME  != 'e'

返回 1566 行,而

SELECT  count(A.NO)
FROM A
WHERE
A.CODE NOT IN ('a','b','c')
AND
A.NAME NOT IN ('d','e') 

仅返回 1200 行。

我想NOT IN不包括NULL价值观 - 那是唯一的区别吗?

4

2 回答 2

2

我试图使用这个简化的 SQL 小提琴来重现问题,但是,它为两个版本返回相同的数字。

你的数据有什么不同?

于 2013-02-14T04:41:08.717 回答
0

没有答案,但什么提供以下内容?

SELECT *
FROM A
WHERE
A.CODE != 'a' 
AND 
A.CODE  != 'b'
AND
A.CODE  != 'c'
AND 
A.NAME  != 'd' 
AND
A.NAME  != 'e'
AND NOT (
    A.CODE NOT IN ('a','b','c')
    AND
    A.NAME NOT IN ('d','e') 
)
LIMIT 0, 20
于 2013-05-07T15:00:22.423 回答