模仿MySQL中的array_intersect

时间:2013-02-11 13:43:34

标签: php mysql arrays

我有一张这样的表:

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单词。

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

1 个答案:

答案 0 :(得分:1)

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

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

这很容易概括为更多的单词。