SQL如何删除特定列的重复行并保留一个

Sol*_*Sol 1 mysql sql phpmyadmin duplicates

以下代码返回特定列的重复行的列表。在本例中,我试图查找大学名称的重复项。我的问题是如何删除重复项并为每个不同的 University_name 只留下一份副本?

    Select * from `university` where `university_name` in ( select `university_name` from `university` group by `university_name` having count(*) > 1 )
Run Code Online (Sandbox Code Playgroud)

这是结果:

在此输入图像描述 你能解释一下吗我对 SQL 很陌生!先感谢您!!

Jim*_*mit 5

1) 如果要保留 id 值最小的行:

DELETE a
FROM university a, university b
WHERE a.id > b.id
AND  b.university_name=a.university_name
Run Code Online (Sandbox Code Playgroud)

2)如果要保留id值最高的行:

DELETE a
FROM university a, university b
WHERE a.id < b.id
AND  b.university_name=a.university_name
Run Code Online (Sandbox Code Playgroud)