sql删除同表重复数据
可以使用以下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语句的作用是:
-
在子查询中,使用GROUP BY语句对duplicate_column_name进行分组,并取每组中column_name的最小值。
-
在主查询中,使用NOT IN语句和子查询结果进行比较,删除column_name不在子查询结果中的行,即保留每组中column_name的最小值,删除重复的行。
注意事项:
-
在执行删除操作前,最好先备份数据,以免误删。
-
如果表中存在外键关联,删除数据时需要注意顺序,先删除子表中的数据,再删除父表中的数据。
原文地址: https://www.cveoy.top/t/topic/f1xH 著作权归作者所有。请勿转载和采集!