共计 1319 个字符,预计需要花费 4 分钟才能阅读完成。
本篇文章给大家分享的是有关 MySQL 中如何删除单表重复记录,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。
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 中如何删除单表重复记录,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。