使用删除查询删除重复的行?

问题描述

| 这个问题被要求接受采访,我仍然无法通过谷歌搜索找到答案。 我有一张两列的桌子。表格没有任何主键。我想删除重复的行。我可以通过alter table来做到,但是他们想要删除查询。 这是表数据。
empid name
1     rahul
2     rajeev
1     rahul
2     rajeev
2     rajeev
3     elias
4     amith
2     rajeev
结果应该是
1     rahul
2     rajeev
3     elias
4     amith
    

解决方法

正如@Marc B在评论中所说,这听起来像是一个技巧问题。但是如果不是... 我知道的唯一解决方案(没有意识到mysql中适当的排名功能)是以某种方式遍历每个名​​称并运行以下查询:
DELETE FROM tbl_name
WHERE name=@name
LIMIT 1
这不是一个查询,因此不是有效的答案,但是我不确定在mysql中是否有其他方法可以做到这一点。 另一个选择是在临时表中使用“ 3”,截断原始表,然后将记录从临时表插入到表中。同样,这不能满足要求。