有的时候我们会手贱,或者同事脑子发晕,把许多重复数据插入到一张表里,如何做到mysql删除重复数据只保留一条?

MySQL中,可以使用DELETE语句结合子查询来删除重复的数据,只保留一条。假设有一个表叫做your_table,并且有一个列叫做duplicate_column,可以按照以下步骤操作:

  1. 查找重复的数据并保留其中一条(通常是最早或最晚的一条):

SELECT MIN(id) as id, duplicate_column FROM your_table GROUP BY duplicate_column HAVING COUNT(*) > 1;

上面的查询会列出具有重复值的duplicate_column以及它们的最小id。你可以根据实际情况更改列名和条件。

  1. 利用上一步的查询结果来构建DELETE语句:

DELETE t1 FROM your_table t1 JOIN ( SELECT MIN(id) as id, duplicate_column FROM your_table GROUP BY duplicate_column HAVING COUNT(*) > 1 ) t2 ON t1.duplicate_column = t2.duplicate_column AND t1.id <> t2.id;

请确保在运行DELETE语句之前做好备份,以防意外删除。此外,根据你自己的表结构,需要修改上述查询和语句以适应你的实际情况。

如此就能做到mysql删除重复数据只保留一条了。