数据库教程

查询重复数据,并且删除只保留一条SQL语法

我的站长站 2023-10-12 人阅读

首先是sql查询重复数据语法

SELECT * FROM [表名] WHERE [字段] IN (
    SELECT [字段] FROM [表名] GROUP BY [字段] HAVING COUNT([字段]) > 1
);


然后就是删除重复数据,只保留一条ID最小的数据

DELETE FROM [表名] WHERE id IN (
    SELECT * FROM (
        SELECT id FROM [表名] WHERE [字段] 
        IN (
            SELECT [字段] FROM [表名] GROUP BY [字段] HAVING COUNT(1) > 1
        ) AND id NOT IN (
            SELECT MIN(id) FROM [表名] GROUP BY [字段] HAVING COUNT(1) > 1
        )
    ) AS table_repeat_copy
);


数据库教程标签