这个问题被要求接受采访,我仍然无法通过谷歌搜索找到答案。
我有一张两列的桌子。表格没有任何主键。我想删除重复的行。我可以通过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中有其他方法可以做到。
另一种选择是使用
SELECT DISTINCT
到临时表中,截断原始表,然后将记录从临时表中插入到表中。同样,这不能满足要求。