这个问题被要求接受采访,我仍然无法通过谷歌搜索找到答案。
我有一个有两列的表。表没有任何主键。我想删除重复的行。我可以通过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
答案 0 :(得分:2)
正如@Marc B在评论中所说,这听起来像一个技巧问题。但如果不是......
我所知道的唯一解决方案(不知道mysql中的正确排名函数)是以某种方式遍历每个名称并运行以下查询:
DELETE FROM tbl_name
WHERE name=@name
LIMIT 1
这不是一个查询,所以它不是一个有效的答案,但我不确定在mysql中做任何其他方法。
另一种选择是将SELECT DISTINCT
用于临时表,TRUNCATE原始表,并从临时表中将记录重新插入其中。同样,这不符合要求。