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 )
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。
本文链接:https://www.10zhan.com/biancheng/10101.html