加入收藏 | 设为首页 | 会员中心 | 我要投稿 52站长网 (https://www.52zhanzhang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL 中怎么删除单表重复记录

发布时间:2022-01-21 12:57:11 所属栏目:MySql教程 来源:互联网
导读:本篇文章给大家分享的是有关MySQL 中如何删除单表重复记录,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 1、创建表test001 点击(此处)折叠或打开 CREATE TABLE `test001` ( `id` bigint
       本篇文章给大家分享的是有关MySQL 中如何删除单表重复记录,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1、创建表test001
 
点击(此处)折叠或打开
 
CREATE TABLE `test001` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
2、随机写入数据导表test001中
    insert into test001 (name) values('A');
    insert into test001 (name) values('B');
    insert into test001 (name) values('C');
    insert into test001 (name) values('d');
 
3、查询整表数据
 
 
点击(此处)折叠或打开
 
select * from test001;
+----+------+
| id | name |
+----+------+
| 1 | A |
| 2 | A |
| 3 | A |
| 4 | A |
| 5 | A |
| 6 | A |
| 7 | A |
| 8 | A |
| 9 | B |
| 10 | B |
| 11 | B |
| 12 | B |
| 13 | B |
| 14 | B |
| 15 | C |
| 16 | C |
| 17 | C |
| 18 | C |
| 19 | d |
| 20 | d |
| 21 | d |
| 22 | d |
| 23 | d |
+----+------+
23 rows in set (0.00 sec)
4、执行SQL删除重复记录,只保留id最小的记录
 
DELETE  FROM Test001  WHERE  id NOT IN (
 
SELECT  minid  FROM
 
(SELECT  min(id) AS minidFROM  Test001
 
GROUP BYname) b
 
);
 
点击(此处)折叠或打开
 
>DELETE
    -> FROM
    -> Test001
    -> WHERE
    -> id NOT IN (
    -> SELECT
    -> minid
    -> FROM
    -> (
    -> SELECT
    -> min(id) AS minid
    -> FROM
    -> Test001
    -> GROUP BY
    -> name
    -> ) b
    -> );
Query OK, 19 rows affected (0.00 sec)
(root@localhost:mysql.sock) [test]>select * from test001;
+----+------+
| id | name |
+----+------+
| 1 | A |
| 9 | B |
| 15 | C |
| 19 | d |
+----+------+
4 rows in set (0.00 sec)
5、执行后的结果,重复记录都删除了
    
 
点击(此处)折叠或打开
 
(root@localhost:mysql.sock) [test]>select * from test001;
+----+------+
| id | name |
+----+------+
| 1 | A |
| 9 | B |
| 15 | C |
| 19 | d |
+----+------+
4 rows in set (0.00 sec)
以上就是MySQL 中如何删除单表重复记录,小编相信有部分知识点可能是我们日常工作会见到或用到的。

(编辑:52站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读