MySQL 中如何删除单表重复记录

53次阅读
没有评论

共计 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 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计1319字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)