用于匹配多个列值的SQL查询

Ben*_*enM 2 mysql sql

我无法理解以下问题.

给定以下表结构和数据,如何选择与两个标记匹配的记录.例如:

+-----------------+------------------+
|  collection_id  |         tag      |
+-----------------+------------------+
|        1        |    advertising   |
|        1        |     tutorials    |
|        2        |    advertising   |
|        2        |       coding     |
+-----------------+------------------+
Run Code Online (Sandbox Code Playgroud)

如果我搜索广告&&教程,它应该返回collection_id= 1,而不是collection_id= 2.

任何指针都非常受欢迎.

Joh*_*Woo 6

SELECT collection_ID
FROM tableName
WHERE tag IN ('advertising','tutorials')
GROUP BY collection_ID
HAVING COUNT(*) = 2
Run Code Online (Sandbox Code Playgroud)

如果unique未在每个标记上指定约束collection_ID

SELECT collection_ID
FROM tableName
WHERE tag IN ('advertising','tutorials')
GROUP BY collection_ID
HAVING COUNT(DISTINCT tag) = 2
Run Code Online (Sandbox Code Playgroud)