msyql 去重
2024-09-05 03:25:43
delete from userinfo where busi_id in
(select busi_id from
(select busi_id from userinfo group by busi_id having count(busi_id)>1) tmp1)
and id not in
(select id from
(select min(id) id from userinfo group by busi_id having count(busi_id)>1) tmp2); 无主键 添加主键再去重操作。 DELETE FROM user WHERE id NOT IN ( SELECT temp.min_id FROM ( SELECT MIN(id) min_id FROM user GROUP BY name,age )AS temp );
如果在设计表时没有指定主键,
导入数据时可能出现重复导入,
导致一个表中出现多条完全相同的多条记录。
以下是解决这个问题的思路:
使用distinct语句筛选出不重复的记录存入临时表tmp;
create table tmp as (select distinct sno,sname,age,sex from s);
删除原表中的数据记录
delete from s;
将临时表中的数据插入到原表。
insert into s select * from tmp;
删除临时表
drop table tmp;
有一张学生表,有姓名和性别(0:女,1:男),假如我们想删除姓名和性别都相同的数据,这里介绍2中方法
首先看一下数据表
编号 | 姓名 | 性别 |
1 | 王璐 | 0 |
2 | 李萌 | 0 |
3 | 张帅 | 1 |
4 | 李萌 | 0 |
5 | 张帅 | 1 |
6 | 刘涛 | 1 |
NO.1
保留id较小的数据
DELETE t1 FROM student t1, student t2
WHERE t1.name = t2.name AND t1.sex = t2.sex AND t1.id > t2.id
保留id较大的数据
DELETE t1 FROM student t1, student t2
WHERE t1.name = t2.name AND t1.sex = t2.sex AND t1.id < t2.id
注意最后的t1.id > t2.id不要忘记,否则会删除所有的数据,操作之前一定要先备份好数据
NO.2
INSERT INTO student_tmp(name, sex)
SELECT DISTINCT name, sex FROM student
总结
两种方法优缺点:
方法二所需时间更短,但是方法二当主键为uuid时,需要处理一下,可将把主键设置为int自增,然后执行下面的sql就可以了。
UPDATE student_tmp SET id = uuid()
最新文章
- 汽车遥控钥匙HCS101/HCS200/HCS201/HCS300芯片解密
- ASP.NET MVC系列:添加模型
- java之yield(),sleep(),wait()区别详解-备忘笔记
- 【转】Java集合框架综述
- Python脚本控制的WebDriver 常用操作 <;九>; 定位一组对象
- Informatica9.6.1在Linux Red Hat 5.8上安装遇到的有关问题整理_1
- Using Git Submodules
- hdu1020 Encoding
- BZOJ_1629_[Usaco2007_Demo]_Cow_Acrobats_(贪心)
- 009.EscapeRegExChars
- ASP.NET - 服务器控件button 先执行js 再执行后台的方法
- Python中的eval()、exec()及其相关函数
- windows短路径转换成长路径
- 项目管理-工作量评估 Manday
- SQLite数据库管理工具(SQLiteStudio)v3.1.1
- 使用SOCKET获取网页的内容
- iOS 10 的一个重要更新-开发 iMessage 的第三方插件
- Android基础——Fragment与Activity交互
- 【linux &; &;&;命令】&;后台(并行)命令 &;&;串行命令
- h3c端口汇聚的几种情况-S5500-S5048
热门文章
- 更换镜像加快python pip 安装扩展库的速度
- Vue的axios如何全局注册
- Vue项目中的http请求统一管理
- phpstorm设置最多标签数
- Chrome 浏览器自动填表呈现淡黄色解决
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_06-SpringSecurityOauth2研究-Oauth2授权码模式-申请令牌
- PAT 甲级 1046 Shortest Distance (20 分)(前缀和,想了一会儿)
- LeetCode_110. Balanced Binary Tree
- (十六)toString()的用法
- celery的log如何传递给django,由django管理