mysql删除表重复数据 您所在的位置:网站首页 mysql删除一张表重复数据 mysql删除表重复数据

mysql删除表重复数据

2024-07-01 18:36| 来源: 网络整理| 查看: 265

在mysql数据库中可能会出现没有唯一约束导致的数据会有多条的问题,那么我们怎么删除多余的数据只保留其中一条数据。这里有一些方法可以快速进行删除多余的数据

新建示例表结构和数据 CREATE TABLE `user` ( `name` varchar(20) DEFAULT NULL, `age` int DEFAULT NULL, `id` int NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB INSERT INTO test.user (name, age) VALUES ('张三', 20); INSERT INTO test.user (name, age) VALUES ('李四', 21); INSERT INTO test.user (name, age) VALUES ('李四', 21); INSERT INTO test.user (name, age) VALUES ('李四', 22); INSERT INTO test.user (name, age) VALUES ('王五', 18); INSERT INTO test.user (name, age) VALUES ('赵六', 21); INSERT INTO test.user (name, age) VALUES ('赵六', 45); 我们需要实现的效果是,删除user表中name重复的数据,只保留一条,那么可以使用如下方法进行处理: 方法一(注意版本,实测5.6.11版本可以,5.7以上版本不支持): ALTER IGNORE TABLE user ADD unique key uk_name (name); 方法二: CREATE TABLE tmp SELECT name, age FROM user GROUP BY name; DROP TABLE user; ALTER TABLE tmp RENAME TO user; 方法三(该方法会删除除了ID最小的所有重复name的数据): delete a from user a, user b where a.name = b.name and a.id > b.id;



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有