当前位置:首页 > 编程技术 > 正文内容

MYSQL 如何删除表中重复数据

yc8882年前 (2022-11-26)编程技术297

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

标签: MYSQL
分享给朋友:

“MYSQL 如何删除表中重复数据” 的相关文章