我需要从数据库中删除重复的行。我可以用简单的SQL查询吗?如果没有,请告诉我一些快速算法。
例子:
id| field_one | field_two | 1 | 0000000 | 11111111 | 2 | 2222222 | 33333333 | 3 | 2222222 | 33333333 | 4 | 4444444 | 55555555 |
我需要删除ID为2的行(或3,无论如何,它们是相等的,但不能同时都是)。谢谢你的帮助
delete from the_table where id in (select max(id) from the_table group by field_one, field_two having count(*) > 1)
正如评论中指出的那样,如果连续出现三遍,则此操作将无效。您可以重复运行此(繁重的)查询,直到停止删除内容为止,或者等待更好的答案…