可以使用以下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. 如果表中存在外键关联,删除数据时需要注意顺序,先删除子表中的数据,再删除父表中的数据。


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

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