2015-01-15 63 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