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