2

我有一张这样的桌子:

Col1    Col2
word1   872
word1   333
word2   631
word3   982
word3   111
word4   111
word5   631
word6   333
word6   453

我想接收多个 SELECT 的结果,但只接收所有结果中出现的结果。例如,如果我正在搜索SELECT col2 FROM table WHERE col1='word1'and SELECT col2 FROM table WHERE col1='word6',我想将这两个语句连接在一起以生成一个 MySQL 语句,该语句将仅返回上述两个示例查询中出现的结果。(与 array_intersect 在 PHP 中的作用相同。)

我需要一个查询来对任意数量的 col1 单词执行此操作。

对不起,如果我没有很好地解释。很难解释。

4

1 回答 1

1

解决此问题的最佳方法是使用聚合:

select col2
from t
group by col2
having max(col1 = 'word1') = 1 and
       max(col1 = 'word2') = 1

这很容易推广到更多的词。

于 2013-02-11T15:26:58.510 回答