2013-02-11 26 views
2

我有一個表是這樣的:模仿array_intersect在MySQL

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

請參閱http://stackoverflow.com/q/2621382/549755瞭解如何在MySQL中實現「INTERSECTS」。 – Odi 2013-02-11 13:55:57

回答

1

解決這個問題的最好方法是使用聚合:

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

這很容易推廣到更多的話。