千家信息网

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

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关MySQL 中如何删除单表重复记录,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、创建表test001点击(
千家信息网最后更新 2026年10月31日MySQL 中如何删除单表重复记录

本篇文章给大家分享的是有关MySQL 中如何删除单表重复记录,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。



1、创建表test001

点击(此处)折叠或打开

  1. CREATE TABLE `test001` (

  2. `id` bigint(20) NOT NULL AUTO_INCREMENT,

  3. `name` varchar(20) NOT NULL,

  4. PRIMARY KEY (`id`)

  5. ) 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、查询整表数据

点击(此处)折叠或打开

  1. select * from test001;

  2. +----+------+

  3. | id | name |

  4. +----+------+

  5. | 1 | A |

  6. | 2 | A |

  7. | 3 | A |

  8. | 4 | A |

  9. | 5 | A |

  10. | 6 | A |

  11. | 7 | A |

  12. | 8 | A |

  13. | 9 | B |

  14. | 10 | B |

  15. | 11 | B |

  16. | 12 | B |

  17. | 13 | B |

  18. | 14 | B |

  19. | 15 | C |

  20. | 16 | C |

  21. | 17 | C |

  22. | 18 | C |

  23. | 19 | d |

  24. | 20 | d |

  25. | 21 | d |

  26. | 22 | d |

  27. | 23 | d |

  28. +----+------+

  29. 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

);

点击(此处)折叠或打开

  1. >DELETE

  2. -> FROM

  3. -> Test001

  4. -> WHERE

  5. -> id NOT IN (

  6. -> SELECT

  7. -> minid

  8. -> FROM

  9. -> (

  10. -> SELECT

  11. -> min(id) AS minid

  12. -> FROM

  13. -> Test001

  14. -> GROUP BY

  15. -> name

  16. -> ) b

  17. -> );

  18. Query OK, 19 rows affected (0.00 sec)


  19. (root@localhost:mysql.sock) [test]>select * from test001;

  20. +----+------+

  21. | id | name |

  22. +----+------+

  23. | 1 | A |

  24. | 9 | B |

  25. | 15 | C |

  26. | 19 | d |

  27. +----+------+

  28. 4 rows in set (0.00 sec)

5、执行后的结果,重复记录都删除了

点击(此处)折叠或打开

  1. (root@localhost:mysql.sock) [test]>select * from test001;

  2. +----+------+

  3. | id | name |

  4. +----+------+

  5. | 1 | A |

  6. | 9 | B |

  7. | 15 | C |

  8. | 19 | d |

  9. +----+------+

  10. 4 rows in set (0.00 sec)

以上就是MySQL 中如何删除单表重复记录,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

数据 更多 知识 篇文章 实用 最小 就是 工作会 文章 看吧 知识点 结果 行业 详情 资讯 资讯频道 跟着 部分 频道 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖南永感互联网科技有限公司 苏州找大状互联网科技有限公司 互联网科技金融公司 互联网科技英文 互联网科技公司电话 奇酷互联网络科技 苏州互联网科技贷款公司 上海致骋互联网科技 人人互联网科技是培训 科技类公司包括互联网吗 华夏恒生科技与互联网科技 高科技互联网发展前景如何 工业互联网等科技实现智能化赋能 徐州市互联网科技有限公司 科技互联网的核心竞争力 易企秀互联网科技是做什么的 互联网金融运营模式中的金融科技 福仕德教育科技互联网 互联网科技对化妆品行业 互联网科技企业文化 互联网科技企业 互联网科技公司官网 互联网科技的英文 联恩商钥互联网科技有限公司 博兴的互联网电子科技公司 科技与互联网哪个更好 茂名市互联网科技产业园 福建科技产业互联网发展 消费医药和互联网科技 本届互联网大会上的黑科技
0