mysql 删除重复数据_日常答疑|MySQL删除重复数据踩过得坑
问题
群友提问:MySQL这样删除重复数据为啥不成功呢?
严小样儿:安排!
咋一看,大家都说where子句里面应该使用极值函数,加个max就对了,这么简单!
# 大家想象中这样写是对的,其实仍然是错的!delete from p1 where idfrom p1 b where p1.name=b.name);
看到这里,很多经常写sql但是又不太精通sql的人都会说:纳尼??!尤其是经常使用Oracle的同学,更是百思不得其解!我在这里首先说一句:MySQL这样写的确是错的,Oracle这样写应该没问题!接下来,我们来研究一番,到底如何以这样的方式去重呢?!
安排
(原始数据)
一、预览数据
SELECT * FROM t; # 结果如上
二、查重复值
SELECT * FROM t
WHERE t.ID SELECT MAX(m.ID)FROM t m
WHERE m.NAME = t.NAME AND m.PRICE = t.PRICE);
(重复值结果)
也就是说,利用上面的SQL语句可以查询到哪些是重复数据。
然而,在它前面加个delete却不能删除重复值!
DELETE FROM t WHERE t.ID SELECT WHERE m.NAME=t.NAME AND m.PRICE = t.PRICE);
(报错截图)
三、正确答案
# 正确答案delete from t where t.id in (select r.* from (select id from t where t.id < (select max( m.id ) from t m where m.name = t.name ) ) r ); # 再次查看SELECT * FROM t;
(最终结果)划重点MySQL不能直接在查询结果中进行删除操作,需要先建立一个临时表。
更多精彩
传送门1:日常答疑|Python向量化操作、矩阵运算传送门2:日常答疑|Python处理时间格式并计算时间差值传送门3:分组排序求前三?TopN问题?一文教你MySQL各类排序操作传送门4:系列|七天PYTHON养成记之初识传送门5:系列|七天PYTHON养成记之函数
看完,读完,要“在看” ↓↓↓
mysql 删除重复数据_日常答疑|MySQL删除重复数据踩过得坑相关推荐
- oracle 查重复_日常答疑|MySQL删除重复数据踩过得坑
问题 群友提问:MySQL这样删除重复数据为啥不成功呢? 严小样儿:安排! 咋一看,大家都说where子句里面应该使用极值函数,加个max就对了,这么简单! # 大家想象中这样写是对的,其实仍然是错的 ...
- Java_Hive自定义函数_UDF函数清洗数据_清洗出全国的省份数据
Java_Hive_UDF函数清洗数据_清洗出全国的省份数据 最近用Hadoop搞数据清洗,需要根据原始的地区数据清洗出对应的省份数据,当然我这里主要清洗的是内陆地区的数据,原始数据中不包含港澳台地区 ...
- 大数据治理:那些年,我们一起踩过的坑
写在前面: 这是一个系列文章,沉淀了我在数据治理领域的一些实践和思考.共分为5篇.分别是: 一.大数据治理:那些年,我们一起踩过的坑 主要讲讲数据治理工作中常见的一些误区. 二.要打仗,你手里先得有张 ...
- mysql如何防止插入重复数据_如何防止MySQL重复插入数据,这篇文章会告诉你
在MySQL进行数据插入操作时,总是会考虑是否会插入重复数据,之前的操作都是先根据主键或者唯一约束条件进行查询,有就进行更新没有就进行插入.代码反复效率低下. 新建表格 CREATETABLE`per ...
- mysql更新写入数据_七、MySQL插入、更新与删除数据
存储在系统中的数据是数据库管理系统(DBMS)的核心,数据库被设计用来管理数据的存储.访问和维护数据的完整性.MySQL中提供丰富的数据管理语句,包括插入数据的INSERT.更新数据的UPDATE以及 ...
- mysql两条完全相同的数据_两条完全相同的数据怎么用sql语句删除一条
展开全部 1, 完全相同的数据,需要先e69da5e6ba9062616964757a686964616f31333365646264区分出每条数据才能进一步操作. 添加自增长列以用编号区分不同的数据 ...
- 向mysql数据库发送指令_常用的MySQL数据库命令大全
飞信2017V5.6.8860.0 官方正式版 类型:聊天其它大小:69.1M语言:中文 评分:9.6 标签: 立即下载 常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 ...
- MySQL删除空值语句_数据库语句sql 删除空记录
最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实 ...
- mysql数据库视图备份_数据库篇-mysql详解( 六 )之视图与数据备份
data.png 一 : 视图 视图: view, 是一种有结构(有行有列)但是没结果(结构中不真实存放数据)的虚拟表, 虚拟表的结构来源不是自己定义, 而是从对应的基表中产生(视图的数据来源). ( ...
最新文章
- 超低费用将推动BCH在Token系统中脱颖而出
- 天天向上续python3.3_python3的一些实例(3.1-3.8)
- oracle em 界面乱码,oracle em 按钮乱码解决办法及em网页变成英文
- [转]jQuery 读取 xml
- Lady Bird
- OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器
- 自学java 第十章内部类(二)
- arduino支持python吗_python能给arduino的板子编程吗?stm32支持吗?什么游戏引擎支持python?...
- python判断set里是否包含值_【python】判断值是否在list和set的对比以及set的实现原理...
- VC设置cookies实现文件刷下载量
- 网络安全:漏洞测试主要平台 BackTrack4+Metasploit+ruby
- BNUOJ-4049-四叉树
- deepin驱动精灵_Deepin 20 Beta X64官方正式版(64位)
- 获取路由器内的ADSL上网账号和密码或者获取电脑内的ADSL上网账号和密码教程(by 星空武哥)
- HTML和CSS的知识点
- 简单实现购物车相同物品累加
- B 站,真香 ! ! !
- 一个WEB应用的开发流程
- 35岁前成功的黄金法则(12)-十二分努力
- 牛客网项目——前置技术(八):Kafka
热门文章
- stm32f10x单片机进阶--spi使用
- Vue-Router + Vuex 实现单页面应用
- MySQL Cluster 4个数据节点压力测试--mysqlslap工具压400W写
- .net mvc中级联的使用
- 00002-两数之和-leetcode-1.暴力法(枚举法),2.哈希表法,目前更新了枚举法
- 【剑指offer】面试题53 - II:0~n-1中缺失的数字(java)
- 折弯弹性计算公式_冲压模具:影响回弹因素、回弹计算公式计算,值得收藏
- java 翻转句子_Java编程-句子反转
- 编程题走迷宫_C++程序算法题----迷宫(一)
- python如何创建一个列表_在python中创建列表的最佳和/或最快方法