当mysql查询有多个值时,如何从中删除一个特定值,而当它只有一个值时,如何保持原样

当mysql查询有多个值时,如何从中删除一个特定值,而当它只有一个值时,如何保持原样,mysql,Mysql,我有一个mysql查询,它为几个具有不同值的ID返回多行。在这种情况下,我需要消除带有特定数据的ID 范例 ID Name Value 1 A1 AA 1 B1 AB 2 C1 CC 3 A1 AA 4 A1 AA 4 E1 AD 4 B1 AB 我需要为所有具有多个名称的ID消除A1,否则如果它只有一个值A1,那么我应该能够显示它 结果应该是这样的 ID Nam

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

范例

ID   Name  Value
1     A1     AA    
1     B1     AB
2     C1     CC
3     A1     AA
4     A1     AA
4     E1     AD
4     B1     AB
我需要为所有具有多个名称的ID消除A1,否则如果它只有一个值A1,那么我应该能够显示它

结果应该是这样的

ID    Name    Value
1      B1      AB
2      C1      CC
3      A1      AA
4      E1      Ad ---- Any random value from the two

请帮助我解决此问题。

我不确定我是否完全理解规范-但这确实为特定数据集提供了正确的结果集

SELECT x.* 
  FROM my_table x    
  JOIN 
     ( SELECT id,MAX(name) max_name FROM my_table GROUP BY id ) y 
    ON y.id = x.id 
   AND y.max_name = x.name;

但是max(姓名)将过滤其中的值并给出随机结果,但我需要检查id是否有多个值,仅当它有多个值时,我需要检查其中一个值是否为A1,并消除该值,然后显示该id的其余值之一。也许您的示例数据集不能正确代表当前的问题!