MySQL 查询及删除重复记录
查找多余的重复记录,重复根据字段来判断
SELECT * FROM <table_name> WHERE <col> IN (SELECT <col> FROM <table_name> GROUP BY <col> HAVING COUNT(<col>) > 1)
删除表中多余的重复记录,重复根据字段来判断,保留 rowid 较小的记录
DELETE FROM <table_name> WHERE <col> IN (SELECT <col> FROM <table_name> GROUP BY <col> HAVING COUNT(<col>) > 1 ) AND <rowID> NOT IN (SELECT MIN(<rowid>) FROM <table_name> GROUP BY <col> HAVING COUNT(<col>) > 1)
给有重复记录的表添加唯一索引
alter ignore table <table_name> add unique index(user_id,user_name);
这样也会删除多余的重复记录
