【问题标题】:Imitate array_intersect in MySQL模仿 MySQL 中的 array_intersect
【发布时间】:2013-02-11 13:43:34
【问题描述】:

我有一张这样的桌子:

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 语句,该语句将仅返回上述两个示例查询中出现的结果。 (与 PHP 中的 array_intersect 相同。)

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

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

【问题讨论】:

标签: php mysql arrays


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 2017-09-19
    • 2011-07-31
    • 2016-02-17
    • 1970-01-01
    相关资源
    最近更新 更多