MySQL 中如何删掉单表重复记录
发布时间:2022-01-21 12:39:49 所属栏目: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 中如何删除单表重复记录,小编相信有部分知识点可能是我们日常工作会见到或用到的。 (编辑:重庆站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |