mysql之SQL之选择其中参数 A 是多个值之一且参数 B 相等
java哥
阅读:71
2024-04-17 11:32:04
评论:0
假设我们有一个包含 A 列和 B 列的表格。
我需要选择行,其中参数 A 是设置的 ARRAY 值之一,并且这些行的参数 B 相等,而没有其他行的参数 A 不在 ARRAY 中,但它的行相等参数 B 到 ARRAY 中的参数。
例如我们有表:
John 1
Andrew 1
John 2
Paul 2
John 3
Andrew 3
Paul 3
并且我需要根据 ARRAY = (John, Andrew) 选择行,所以结果应该只有前两行(参数 A 都在 ARRAY 中,参数 B 相等并且没有其他行具有相同的参数 B ):
John 1
Andrew 1
你能帮我解决那个 (MySQL) 的 SQL SELECT 语法吗?
PS:ARRAY 中的参数数量可以变化。
PS2:结果应该只有行,其中存在 ARRAY 中的每个项目。因此,例如,如果 ARRAY = (John, Andrew, Paul),结果应该仅为:
John 3
Andrew 3
Paul 3
请您参考如下方法:
SELECT *
FROM YourTable
WHERE a IN ('John', 'Andrew', 'Paul')
AND b NOT IN (
SELECT b
FROM YourTable
WHERE a NOT IN ('John', 'Andrew', 'Paul')
) AND b IN (
SELECT b
FROM YourTable
WHERE a IN ('John', 'Andrew', 'Paul')
GROUP BY b
HAVING COUNT(*) = 3)
COUNT(*)
限定符应与集合中的元素数相同。这假设名称在特定的 b
值中不重复。
这实际上是将您的描述逐字翻译成 SQL。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。