mysql数据库去重复
时间:2022-05-04
本文章向大家介绍mysql数据库去重复,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
参考:http://www.cnblogs.com/duanjie/archive/2011/08/13/2136862.html
说到去重复,感觉逻辑很简单。但动手写起来却并不是那么容易。面试的时候让写sql语句,然后没完整的写出来,然后面试官说你这没结果啊!
去重复首先要把要留下的选出来,然后删除其他重复项。distinct虽然好用,但规则不明显。这里采用:select max(id) from user group by 重复依据。
1.取出要留下的数据,本次依据重复项的最大id为保留项。
SELECT id,name,age from person
WHERE id in(
SELECT MAX(id) from person GROUP BY name,age
);
2.放入临时表
DROP TABLE IF EXISTS temp1;
CREATE TEMPORARY TABLE temp1 SELECT id,name,age from person
WHERE id in(
SELECT MAX(id) from person GROUP BY name,age
);
3.清空原表并从临时表注入
TRUNCATE person;
INSERT INTO person SELECT * from temp1;
DROP TABLE if EXISTS temp1;
SELECT * from person;
当然也可以直接delete:
DELETE from person WHERE id not in (
SELECT mid FROM(
SELECT MAX(id) mid from person GROUP BY name,age
) t
)
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 基于yolo5工地安全帽和禁入危险区域识别系统,附数据集
- Go 常见并发模式实现(一):调度后台处理任务的作业程序
- 路由使用进阶(二)
- linux No space left on device由索引节点(inode)爆满引发500问题
- linux中批量添加文件前缀的操作方法
- Go 常见并发模式实现(二):通过缓冲通道实现共享资源池
- 在 Linux 终端中查找域名 IP 地址的命令(五种方法)
- Laravel 表单方法伪造与 CSRF 攻击防护
- Java图形验证码支持gif、中文、算术等
- Go 常见并发模式实现(三):通过无缓冲通道创建协程池
- Linux下安装SVN服务端的方法步骤
- SSM项目频繁打成war包部署,使用tomcat和maven实现热部署配置
- Laravel 视图使用入门
- 基于 Go 协程实现图片马赛克应用(上):同步版本
- Blade 模板引擎入门篇