我有一张这样的表:
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'
和SELECT col2 FROM table WHERE col1='word6'
,我想将这两个语句连接在一起以生成一个MySQL语句,该语句将仅返回上述两个示例查询中出现的结果。 (与array_intersect相同,在PHP中可用。)
我需要一个单独的查询来执行任意数量的col1单词。
对不起,如果我没有解释得很好。很难解释。
答案 0 :(得分:1)
解决此问题的最佳方法是使用聚合:
select col2
from t
group by col2
having max(col1 = 'word1') = 1 and
max(col1 = 'word2') = 1
这很容易概括为更多的单词。