关于删除表的重复数据 只留一条数据
发布时间:2016-03-26

项目中碰到了 需要删除表中重复数据的问题

删除数据后还得保留一条数据 

这里涉及到的mysql的group by ,union,视图,子查询的用法


思路就是  查询出去重的记录id

create or replace view v_name2 select id from t1 group by name having count(name) > 1 UNION select id from t1  group by name having count(name) = 1


上面语句就是将去重后的id放入一个视图中

然后

delete from t1 where id not in (select * from v_name2);

如果还需要别的查询条件就继续在where后面添加

这样就做到了删除重复数据 而保留一条数据的效果了



by echoyl