2015-01-15 62 views
-2

我有table1下面,有兩列:MySql的-sorting結果及發行

id name1 
1 x 
2 y 
1 y 
2 x 
3 b 
4 f 

作爲一個結果,我需要看到含有X和Y的ID號。 (在這種情況下,它是1和2)。使用AND運算符似乎不起作用。有什麼方法可以修復它嗎?

select id 
from table1 
where name1=x AND name1=y; 
+0

對於同一個ID,'x'可以存在多次? – 2015-01-15 17:03:55

+0

是x可以存在多個時間 – NastroUK 2015-01-15 17:10:16

回答

0

您可以使用group byhaving

select id 
from Table1 
where name1 in (x,y) 
group by id 
having count(*) =2 

做,如果xy重複不止一次爲給定ID

select id 
from Table1 
where name1 in (x,y) 
group by id 
having sum(name1=x) > 0 
     and sum(name1=y) >0 
+0

請參閱我對該問題的評論。取決於數據,此解決方案存在潛在的問題。 – 2015-01-15 17:05:10

+0

@ConradFrix,我同意,將在答案中澄清。 – radar 2015-01-15 17:06:20

+0

謝謝雷達。這應該是治療。 – NastroUK 2015-01-15 17:15:03

-1

您需要使用OR而不是AND

+0

或者會得到不同於我期望的結果。它將返回所有ID,只有x或y。 – NastroUK 2015-01-15 17:13:49

+0

好吧,那麼我不能正確理解你的問題100%。 在這種情況下,雷達的答案應該起作用。我沒有看到他的答案,因爲我們在同一時間回答。 – Bender 2015-01-19 13:11:07