数据库教程

查询重复数据,并且删除只保留一条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
);


相关推荐
  • sql删除
  • sql查询
  • 查询重复数据,并且删除只保留一条SQL语法

    首先是SQL查询重复数据语法SELECT * FROM [表名] WHERE [字段] IN ( SELECT [字段] FROM [表名] GROUP BY [字段] HAVING COUNT([字段]) > 1);然后就是删除重复数据,只保留一条ID最小的数据DELETE FROM [表名] WHERE id IN ( SELECT * FROM ( ...

    数据库教程 28 9个月前
  • SQL中的3种删除语法详解

    DROP教程DROP TABLE test;删除表test,并释放空间,将test删除的一干二净。TRUNCATE教程TRUNCATE test;删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在。DELETE教程1、删除指定数据删除表test中年龄等于30的且国家为US的数据DELETE FROM tes...

    数据库教程 201 3年前
  • 删除数据库详解教程

    在MySQL通过DELETE语句删除数据表中的数据。在此,我们先准备一张数据表,代码如下:-- 创建学生表 create table student( id int, name varchar(30), age int, gender varchar(30) ); -- 插入数据 insert into student (id,name,age,gender) values (2,&...

    数据库教程 58 3年前
  • 查询重复数据,并且删除只保留一条SQL语法

    首先是SQL查询重复数据语法SELECT * FROM [表名] WHERE [字段] IN ( SELECT [字段] FROM [表名] GROUP BY [字段] HAVING COUNT([字段]) > 1);然后就是删除重复数据,只保留一条ID最小的数据DELETE FROM [表名] WHERE id IN ( SELECT * FROM ( ...

    数据库教程 28 9个月前
  • sql查询统计字段重复次数语法

    查询 table_name 表中 field2 字段的值,并找出出现次数大于1的记录。同时,该查询还会显示 field1 字段的值和该字段对应的 field2 记录中的重复次数。SELECT field1, field2, COUNT(field2) FROM table_name GROUP BY field2 HAVING COUNT(field2)>1;...

    数据库教程 24 9个月前
  • SQL新手入门SELECT数据库查询语句

    SELECT语义SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。SELECT语法示例SELECT column_name,column_name FROM table_name;SELECT * FROM table_name;下面的 SQL 语句从 "Websites" 表中选取 "name" 和 "country" 列:SEL...

    数据库教程 126 3年前
最新更新