在同一查询中使用WHERE IN和WHERE NOT IN

hap*_*ist 0 mysql sql

是否可以在mysql查询中使用WHERE IN和WHERE NOT IN?

我尝试在一个查询中使用它们但结果不正确.所以我想问一下理论上可以用NOT IN和IN语句排除一些结果吗?

编辑1:我在同一列上使用语句.

T.J*_*der 5

是的,这是完全可能的,但除非你使用不同的列,否则它没有多大意义,除非你不控制所涉及的集合.如果你使用不同的列,它可以很有意义.

例如,这在大多数情况下都没有意义:

WHERE A IN (1, 2, 3) AND A NOT IN (4, 5, 6)
Run Code Online (Sandbox Code Playgroud)

...因为如果A它在1, 2, 3里面,根据定义,不在4, 5, 6.第二部分是多余的.只是

WHERE A IN (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

是你所需要的全部.但你可以做(例如,当你不知道这些是什么时,你从其他来源获得它们):

WHERE A IN (1, 2, 3) AND A NOT IN (3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

这将归结为:

WHERE A IN (1, 2)
Run Code Online (Sandbox Code Playgroud)

但这有道理:

WHERE A IN (1, 2, 3) AND B NOT IN (4, 5, 6)
Run Code Online (Sandbox Code Playgroud)

(删除是由于对问题的编辑.)