我无法解决以下问题。
给定以下表结构和数据,我如何选择匹配两个标签的记录。例如:
+-----------------+------------------+
| collection_id | tag |
+-----------------+------------------+
| 1 | advertising |
| 1 | tutorials |
| 2 | advertising |
| 2 | coding |
+-----------------+------------------+
如果我搜索广告 && 教程,它应该返回 collection_id
= 1,而不是 collection_id
= 2。
欢迎任何指点。
最佳答案
SELECT collection_ID
FROM tableName
WHERE tag IN ('advertising','tutorials')
GROUP BY collection_ID
HAVING COUNT(*) = 2
如果未在每个 collection_ID
的标签上指定 unique
约束
SELECT collection_ID
FROM tableName
WHERE tag IN ('advertising','tutorials')
GROUP BY collection_ID
HAVING COUNT(DISTINCT tag) = 2
关于mysql - 匹配多个列值的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13375028/