文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

本篇文章给大家分享的是有关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 中如何删除单表重复记录,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯