1、根据查询语句创建表
CREATE table <表名称> as <select * from <查询表> >
2、根据字段名查询重复行
SELECT * FROM <表名称> GROUP BY 字段1, 字段2, ... , 字段n HAVING count(1) > 1;
3、去除重复行并且只保存一条
select * from <表名> where <目标字段> exits (SELECT <目标字段> FROM <表名称> GROUP BY 字段1, 字段2, ... , 字段n HAVING count(1) > 1) and <表名>.id not in (SELECT min(<表名>.id) FROM <表名称> GROUP BY 字段1, 字段2, ... , 字段n HAVING count(1) > 1);
这个sql查询出来的是所有要删除的重复列,可以用查询出来的重复列做一个临时表,去删除目标表的重复数据