Mysql如何删除表里相同的记录

    技术2022-05-20  48

    你看看测试表吧!user(id,name)

    id是主键,name是可以相同的。

    当我们想删除重复的记录(当然要保存一条了,不能全删)。

    delete from user where id not in(select min(id) as uid from user u group by name)

    报错!而这个方法还是SQL cook book里的方法。老外的书还有bug的!

    在网上查询了很多博客都是用一些极端的方法。当然也有我使用的方法。再包装一次:

    delete from user where id not in(select c.d from (select min(id) as d from user group by name)c)

    这样子,删除的数据就和查询的数据不是同一表了。

     


    最新回复(0)