当id在mysql中有多个值时,如何消除特定值

时间:2014-02-18 17:01:54

标签: mysql

我有一个mysql查询,它为少数具有不同值的ID返回多行。在这种情况下,我需要用某些数据消除ID。

示例

enter image description here

我需要为所有那些具有多个名称的ID划分A1,如果它只有一个值A1,那么我应该能够显示它。

结果应如下所示:

ID   Name  Value
1     A1     AA    
1     B1     AB
2     C1     CC
3     A1     AA
4     A1     AA
4     E1     AD
4     B1     AB

enter image description here

请为此解决方案

1 个答案:

答案 0 :(得分:0)

这可能非常难看,但至少可以完成工作:

select id, name, value from (
  select f.*, c.count 
  from <TABLE> f, (select *, count(*) as 'count' from <TABLE> group by id) c 
  where f.id = c.id
  ) c 
where (name = 'A1' and count = 1) or name != 'A1' 
group by id

您将获得id = 4

剩余(非随机)的“第一”行