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

时间:2011-05-24 17:36:43

标签: mysql

这个问题被要求接受采访,我仍然无法通过谷歌搜索找到答案。

我有一个有两列的表。表没有任何主键。我想删除重复的行。我可以通过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

1 个答案:

答案 0 :(得分:2)

正如@Marc B在评论中所说,这听起来像一个技巧问题。但如果不是......

我所知道的唯一解决方案(不知道mysql中的正确排名函数)是以某种方式遍历每个名​​称并运行以下查询:

DELETE FROM tbl_name
WHERE name=@name
LIMIT 1

这不是一个查询,所以它不是一个有效的答案,但我不确定在mysql中做任何其他方法。

另一种选择是将SELECT DISTINCT用于临时表,TRUNCATE原始表,并从临时表中将记录重新插入其中。同样,这不符合要求。