mysql删除重复数据只保留一条
2016-04-29 08:28
721 查看
mysql删除重复数据只保留一条
新建一张测试表:
测试数据:
查询删除重复数据前表中数据:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/23/acc8e16840916a8bfd7be656bbbe85f3.png)
执行删除重复数据SQL:
删除重复数据后表中数据:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/23/4a2f4035b897a1b9836e273ab6ff3b5e.png)
name列重复的数据删除了。
新建一张测试表:
CREATE TABLE `book` ( `id` char(32) NOT NULL DEFAULT '', `name` varchar(100) DEFAULT NULL, `parent_id` char(32) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
测试数据:
INSERT INTO `book` VALUES ('1', 'n1', '1'); INSERT INTO `book` VALUES ('2', 'n2', '1'); INSERT INTO `book` VALUES ('3', 'n3', '1'); INSERT INTO `book` VALUES ('4', 'n4', '3'); INSERT INTO `book` VALUES ('5', 'n5', '3'); INSERT INTO `book` VALUES ('6', 'n1', '1'); INSERT INTO `book` VALUES ('7', 'n2', '8'); INSERT INTO `book` VALUES ('8', 'n1', '5'); INSERT INTO `book` VALUES ('9', 'n4', '5'); INSERT INTO `book` VALUES ('10', 'n1', '5'); INSERT INTO `book` VALUES ('11', 'n2', '5');
查询删除重复数据前表中数据:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/23/acc8e16840916a8bfd7be656bbbe85f3.png)
执行删除重复数据SQL:
DELETE book from book , ( SELECT id FROM ( SELECT id FROM book WHERE name IN(SELECT name FROM book GROUP BY name HAVING count(name) > 1) ) t WHERE id NOT IN (SELECT id FROM book GROUP BY name HAVING count(name) > 1) ) as a WHERE book.id = a.id;
删除重复数据后表中数据:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/23/4a2f4035b897a1b9836e273ab6ff3b5e.png)
name列重复的数据删除了。
相关文章推荐
- mysql删除重复数据只保留一条
- Mysql :removeAbandonedTimeout:180
- Mysql查询语句优化技巧
- Mysql语句快速复习教程(全)
- mysql查询某列数据截取字符串
- mysql
- mysql 编码设置utf8 windows下的命令行插入中文报错
- Mysql5.7安装时的默认密码问题
- mysql
- 安装Mysql时1045 - Access denied for user 'root'@'localhost' (using password: YES)
- 详解Mysql数据导入到SQLServer数据库中
- mysql select
- 对MySQL数据库数据操作之删除
- Nodejs mysql pool使用实例
- mysql提权总结
- 20、Mysql语句快速复习
- mysql dumpfile与outfile函数的区别
- MySQL定时器开启、调用实现代码
- MySQL复制: Galera
- mysql-存储过程案例-存储过程中创建表和修改表数据