gpt4 book ai didi

Mysql - 选择匹配所有标签的 id

转载 作者:IT王子 更新时间:2023-10-29 00:31:58 26 4
gpt4 key购买 nike

我有一个交叉引用表:

ID | tag
1 | 4
1 | 5
1 | 6
2 | 4
2 | 5
2 | 8
3 | 2

我需要选择匹配所有 一组标签的 ID。例如,如果我得到标签 '4','5',我将得到 ID '1','2'。如果给我标签 '4','2' 我将不会得到任何 ID,因为没有 ID 匹配所有标签。

另外,如果我得到标签 '4','9' 那么我也不应该得到任何结果 ID,因为搜索 '9' 会得到结果在 NULL 值中,因此没有 ID 匹配所有标签。

过去 2 天我一直在拔头发。希望有人能帮助我。

最佳答案

查询的想法是您需要将记录数与您在 WHERE 子句中提供的值数相匹配。

SELECT ID
FROM tableName
WHERE tag IN (4, 8)
GROUP BY ID
HAVING COUNT(*) = 2

如果没有对每个 ID 的标签指定唯一约束,则需要 DISTINCT

SELECT ID
FROM tableName
WHERE tag IN (4, 8)
GROUP BY ID
HAVING COUNT(DISTINCT tag) = 2

关于Mysql - 选择匹配所有标签的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13821345/

26 4 0