查询所有重复数据
SELECT * FROM table WHERE (col1,col2) IN (SELECT col1,col2 FROM table GROUP BY col1,col2 HAVING count(id) > 1);
由于Mysql 不能对进行查询操作的表进行 delete,update操作 因此加一个临时表
删除多余数据 保留ID 最小的一条
DELETE FROM table WHERE (col1,col2) IN ( SELECT * FROM (SELECT col1,col2 FROM table GROUP BY col1,col2 HAVING count(col1) > 1) b ) and id NOT IN ( SELECT * FROM (SELECT min(id) FROM table GROUP BY col1,col2 HAVING count(col1) > 1 ) c );