是否可以在mysql查询中使用WHERE IN和WHERE NOT IN?
我尝试在一个查询中使用它们但结果不正确.所以我想问一下理论上可以用NOT IN和IN语句排除一些结果吗?
编辑1:我在同一列上使用语句.
是的,这是完全可能的,但除非你使用不同的列,否则它没有多大意义,除非你不控制所涉及的集合.如果你使用不同的列,它可以很有意义.
例如,这在大多数情况下都没有意义:
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)
(删除是由于对问题的编辑.)
| 归档时间: |
|
| 查看次数: |
1487 次 |
| 最近记录: |