mysql数据库去重复

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 参考:http://www.cnblogs.com/duanjie/archive/2011/08/13/2136862.html 说到去重复,感觉逻辑很简单。但动手写起来却并不是那么容易。面试的时候让写sql语句,然后没完整的写出来,然后面试官说你这没结果啊! 去重复首先要把要留下的选出来,然后删除其他重复项。

参考: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 
)

  





唯有不断学习方能改变! -- Ryan Miao
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
关于 MySQL 重复读导致的重复插入问题
本文介绍了在开发业务接口时遇到的MySQL重复读导致的数据重复插入问题,并通过伪代码示例详细解析了问题产生的原因。文章提出了四种解决方案:使用共享锁、控制事务并发执行、强制当前读以及调整隔离级别为READ COMMITTED,旨在确保读取最新数据,避免数据重复插入。
320 3
sql数据库修改数据
在SQL数据库中修改数据通常使用`UPDATE`语句。`UPDATE`语句用于修改已存在的数据库表中的数据。 下面是一个基本的`UPDATE`语句的示例,展示了如何修改数据: ```s
mysql数据库删除的方式
用delete、truncate、drop命令进行删除,但是场景却不同
124 0
MySQL防止重复插入(数据库层where方法解决)
MySQL防止重复插入(数据库层where方法解决)
49 0
值得收藏:当向数据库导入大量数据时,mysql主键唯一键重复插入,如何丝滑操作并不导入重复数据呢
最近要导入大量数据到数据库,数据库中有数据列要求唯一的,也就是唯一键,但是我拿到的数据有部分重复,一运行就会出错,如果把重复数据找出来,删除后在导入,太麻烦了,所以想要丝滑导入,并忽略重复数据,有了下面的解决方案: 本次案例使用phpmyadmin进行演示
1274 1
值得收藏:当向数据库导入大量数据时,mysql主键唯一键重复插入,如何丝滑操作并不导入重复数据呢
mysql数据库:数据库修改字段的长度是否会对程序产生影响?
mysql数据库:数据库修改字段的长度是否会对程序产生影响?
754 0
Mysql数据库,去重,连接篇
sql99的优点是:表的连接是独立的,不占用where的位置。使sql语句整体更加清晰😀 内连接 - 非等值连接 案例:找出每个员工的薪资等级,要求显示员工名,薪资,薪资等级
191 0
mysql如何实现可重复读
mysql基于乐观锁原理实现的mvcc(Multi-Version Concurrency Control,多版本并发控制)
8633 0

热门文章

最新文章

下一篇
oss创建bucket