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 に答える