以下代码返回特定列的重复行列表。在这种情况下,我试图找到大学名称的重复项。我的问题是如何删除重复项并为每个不同的 university_name 只保留一份副本?
Select * from `university` where `university_name` in ( select `university_name` from `university` group by `university_name` having count(*) > 1 )
这是结果:
最佳答案
1)如果要保留id值最小的行:
DELETE a
FROM university a, university b
WHERE a.id > b.id
AND b.university_name=a.university_name
2)如果要保留id值最高的行:
DELETE a
FROM university a, university b
WHERE a.id < b.id
AND b.university_name=a.university_name
关于mysql - SQL如何删除特定列的重复行并保留一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35357394/