当mysql查询有多个值时,如何从中删除一个特定值,而当它只有一个值时,如何保持原样
我有一个mysql查询,它为几个具有不同值的ID返回多行。在这种情况下,我需要消除带有特定数据的ID 范例当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
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的其余值之一。也许您的示例数据集不能正确代表当前的问题!