我有一个这样的表:
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 单词执行此操作。
对不起,如果我没有解释清楚。很难解释。
最佳答案
解决此问题的最佳方法是使用聚合:
select col2
from t
group by col2
having max(col1 = 'word1') = 1 and
max(col1 = 'word2') = 1
这很容易推广到更多的词。
关于php - 模仿MySQL中的array_intersect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14813246/