2013-10-12 60 views
0

如果匹配IN语句内的任何值,SQL“in”子句将返回值。但是如果我们想要返回一个值,那么“IN”中的所有值都应该匹配?“IN”子句的SQL对应

+1

怎么会连工作? –

+5

一个值不能匹配所有的值,除非它们全都相同。我认为你需要一个你真正的意思的具体例子。 – Laurence

+0

如果项目是非唯一的,那将是'WHERE 1 = 0',因为单个值不能同时等于多个不相等的项目。 – dasblinkenlight

回答

0

您可以使用GROUP BYHAVING过滤掉记录,例如。

SELECT yourColumn 
FROM tableName 
WHERE otherColumn IN ('a','b','c') 
GROUP BY yourColumn 
HAVING COUNT(*) = 3 -- <== the number of values in the WHERE clause 
+2

请注意,除非'otherColumn'确保在每个组中不同,否则您需要'COUNT(DISTINCT otherColumn)'。 – eggyal