SQL语句删除单表中的重复数据

在实际开发中,有时候数据表中会有重复数据,通过sql删除重复数据,保存单条数据(ID较小的那一条记录)

SQL语句删除单表中的重复数据

需求:删除id为22.23条记录,保存18.19的记录

这是通过单表模拟多表删除的操作.

第一步:查询重复记录

SELECT * FROM tdb_goods GROUP BY goods_name HAVING COUNT(goods_name)>=2;

SQL语句删除单表中的重复数据

第二步:删除重复数据

DELETE t1 FROM tdb_goods t1 LEFT JOIN (SELECT * FROM tdb_goods GROUP BY goods_name HAVING COUNT(goods_name)>=2) t2
on t1.goods_name = t2.goods_name WHERE t1.goods_id>t2.goods_id;

SQL语句删除单表中的重复数据

这样22和23条记录就被删除.