2016-03-15 127 views
2

我有這樣的一個表:MYSQL + where子句匹配多行

id image_id style_id 
------------------------ 
1 45  24   
1 45  25   
1 47  25   
1 45  27   
1 45  28 

我想拉image_id列所有三個以下條件匹配:

style_id = 24 
style_id = 25 
style_id = 27 

我有這樣的查詢:

SELECT image_id FROM list WHERE (style_id = 24 AND style_id = 25 AND style_id = 27) 

不回我image_id 45

+1

你寫的查詢沒有多大意義 - 1行的列如何有3個不同的值,即同時等於'24','25'和'27'? – radoh

回答

5

試試這個:如果你可以爲每個image_idstyle_id領域的重複值

SELECT image_id 
FROM list 
WHERE style_id IN (24, 25, 27) 
GROUP BY image_id 
HAVING COUNT(DISTINCT style_id) = 3 

DISTINCT關鍵字纔是必需的。

+0

謝謝!它按我的需要工作。 – phpfreak