mysql 删除重复数据

1. 查询表中是否存在重复数据

SELECT column, count(*) AS count
FROM table
GROUP BY column #需要判定为重复数据的列
HAVING count > 1

2.数据备份, 如果数据量很大, 可以用导出sql文件的方式,  这里直接用sql语句来进行备份

CREATE TABLE bak_table_180817
AS
SELECT * FROM table

或者

CREATE TABLE bak_table_180817
LIKE table

INSERT INTO bak_table_180817
SELECT * FROM table

3.删除重复数据(备份数据的处理就看个人的意愿了)

DELETE a
FROM table a
JOIN (
SELECT column, MIN(id) AS id #这里是假设表的主键是自增,  并且删除重复数据时, 留下的数据为最早得那条(id为最小的). 想以其他的条件留有效数据, 换下条件就可以了
FROM table
GROUP BY column
HAVING COUNT(*) >= 2
) b ON a.column = b.column AND a.id > b.id

原文地址:https://www.cnblogs.com/-xuzhankun/p/9492138.html