可以使用以下 SQL 语句删除同表重复数据:

DELETE FROM table_name
WHERE column_name NOT IN (
    SELECT MIN(column_name)
    FROM table_name
    GROUP BY duplicate_column_name
);

其中,'table_name' 是需要删除重复数据的表名,'column_name' 是需要判断重复的列名,'duplicate_column_name' 是需要去重的列名。

这条 SQL 语句的作用是:

  1. 在子查询中,使用 GROUP BY 语句对 'duplicate_column_name' 进行分组,并取每组中 'column_name' 的最小值。

  2. 在主查询中,使用 NOT IN 语句和子查询结果进行比较,删除 'column_name' 不在子查询结果中的行,即保留每组中 'column_name' 的最小值,删除重复的行。

注意事项:

  1. 在执行删除操作前,最好先备份数据,以免误删。

  2. 如果表中存在外键关联,删除数据时需要注意顺序,先删除子表中的数据,再删除父表中的数据。

SQL 删除重复数据 - 最佳方法和注意事项

原文地址: https://www.cveoy.top/t/topic/osG8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录