我有以下mySQL表:
data
1
2
3
4
5
6
7
8
9
我想为我的select语句提供两个单独的列表
精选列表:
1,4,5,7
包含列表:
1,2,3,4,5,6,7
我尝试了以下语句:
Select * FROM table WHERE data NOT IN ('1,4,5,7') AND data IN ('1,2,3,4,5,6,7)
期望以下输出:
data
2
3
6
但是我没有收到任何结果。我意识到我通过了一个不可能的条件,但是我不知道如何格式化查询以返回预期的结果。
有人可以告诉我我在做什么错吗?
答案 0 :(得分:3)
IN
接受值列表,而不是包含定值列表的字符串。
例子:
x IN (1, 2, 3)
x IN ('a', 'b', 'c')
答案 1 :(得分:1)
使用IN (1,2,3)
而不是IN ('1,2,3')
,因为前者与各个值1
,2
和3
进行比较,而后者与文字字符串{{ 1}}。
答案 2 :(得分:-1)
选择* FROM((选择* FROM表WHERE数据不在('1,4,5,7'))AS表WHERE数据IN('1,2,3,4,5,6,7)< / p>
您再试一次