php - 模仿MySQL中的array_intersect

标签 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 单词执行此操作。

对不起,如果我没有解释清楚。很难解释。

最佳答案

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

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/

相关文章:

arrays - Ruby——当我调用一个数组的方法时,是否需要将方法中的参数指定为数组的名称?

php - 对于以字符串为键的数组,php 的 foreach 如何决定迭代顺序?

php - 从变量中提取第一个数字

php - 嵌套正则表达式...我一无所知!

java - 来自数据库的jfreechart中的散点图

mysql - 我可以在一个数据库中使用 InnoDB 和 MyISAM 表吗?

c# - C# 类中的数组引用

php - 如何显示数据库中的图像?

MySQL 表示 : 2002 - No connection could be made because the target machine actively refused it

arrays - 嵌入文档上的 mongodb 索引