您好,欢迎来到九壹网。
搜索
您的当前位置:首页MYSQL删除表中重复数据

MYSQL删除表中重复数据

来源:九壹网
MYSQL删除表中重复数据

CREATE TABLE `test` (

`id` int(11) DEFAULT NULL,

`name` varchar(255) DEFAULT NULL, `dept` varchar(11) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records of test-- ----------------------------INSERT INTO `test` VALUES ('1', 'zzz', '测试1');INSERT INTO `test` VALUES ('2', 'www', '测试1');INSERT INTO `test` VALUES ('3', 'fff', '测试1');INSERT INTO `test` VALUES ('4', 'zzz', '测试1');INSERT INTO `test` VALUES ('5', 'www', '测试1');INSERT INTO `test` VALUES ('6', 'fff', '测试1');INSERT INTO `test` VALUES ('7', 'test', '测试1');INSERT INTO `test` VALUES ('8', 'test', '测试1');INSERT INTO `test` VALUES ('9', 'test1', '测试1');

  可以看到上述表中id为4,5,6,8 是完全重复的数据,我们需要删除这些数据,我的逻辑是什么呢,就是每条数据分组后 取 id 最⼩的那个 留下来,其余的进⾏删除SQL如下:

DELETEFROM testWHERE

id NOT IN ( SELECT t.id FROM (

SELECT min(id) id FROM test

GROUP BY NAME HAVING

count(1) > 0 ORDER BY id ) t )

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务