问题

群友提问: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删除重复数据踩过得坑相关推荐

  1. oracle 查重复_日常答疑|MySQL删除重复数据踩过得坑

    问题 群友提问:MySQL这样删除重复数据为啥不成功呢? 严小样儿:安排! 咋一看,大家都说where子句里面应该使用极值函数,加个max就对了,这么简单! # 大家想象中这样写是对的,其实仍然是错的 ...

  2. Java_Hive自定义函数_UDF函数清洗数据_清洗出全国的省份数据

    Java_Hive_UDF函数清洗数据_清洗出全国的省份数据 最近用Hadoop搞数据清洗,需要根据原始的地区数据清洗出对应的省份数据,当然我这里主要清洗的是内陆地区的数据,原始数据中不包含港澳台地区 ...

  3. 大数据治理:那些年,我们一起踩过的坑

    写在前面: 这是一个系列文章,沉淀了我在数据治理领域的一些实践和思考.共分为5篇.分别是: 一.大数据治理:那些年,我们一起踩过的坑 主要讲讲数据治理工作中常见的一些误区. 二.要打仗,你手里先得有张 ...

  4. mysql如何防止插入重复数据_如何防止MySQL重复插入数据,这篇文章会告诉你

    在MySQL进行数据插入操作时,总是会考虑是否会插入重复数据,之前的操作都是先根据主键或者唯一约束条件进行查询,有就进行更新没有就进行插入.代码反复效率低下. 新建表格 CREATETABLE`per ...

  5. mysql更新写入数据_七、MySQL插入、更新与删除数据

    存储在系统中的数据是数据库管理系统(DBMS)的核心,数据库被设计用来管理数据的存储.访问和维护数据的完整性.MySQL中提供丰富的数据管理语句,包括插入数据的INSERT.更新数据的UPDATE以及 ...

  6. mysql两条完全相同的数据_两条完全相同的数据怎么用sql语句删除一条

    展开全部 1, 完全相同的数据,需要先e69da5e6ba9062616964757a686964616f31333365646264区分出每条数据才能进一步操作. 添加自增长列以用编号区分不同的数据 ...

  7. 向mysql数据库发送指令_常用的MySQL数据库命令大全

    飞信2017V5.6.8860.0 官方正式版 类型:聊天其它大小:69.1M语言:中文 评分:9.6 标签: 立即下载 常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 ...

  8. MySQL删除空值语句_数据库语句sql 删除空记录

    最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法   编写人:CC阿爸   2014-3-14 其实 ...

  9. mysql数据库视图备份_数据库篇-mysql详解( 六 )之视图与数据备份

    data.png 一 : 视图 视图: view, 是一种有结构(有行有列)但是没结果(结构中不真实存放数据)的虚拟表, 虚拟表的结构来源不是自己定义, 而是从对应的基表中产生(视图的数据来源). ( ...

最新文章

  1. 超低费用将推动BCH在Token系统中脱颖而出
  2. 天天向上续python3.3_python3的一些实例(3.1-3.8)
  3. oracle em 界面乱码,oracle em 按钮乱码解决办法及em网页变成英文
  4. [转]jQuery 读取 xml
  5. Lady Bird
  6. OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器
  7. 自学java 第十章内部类(二)
  8. arduino支持python吗_python能给arduino的板子编程吗?stm32支持吗?什么游戏引擎支持python?...
  9. python判断set里是否包含值_【python】判断值是否在list和set的对比以及set的实现原理...
  10. VC设置cookies实现文件刷下载量
  11. 网络安全:漏洞测试主要平台 BackTrack4+Metasploit+ruby
  12. BNUOJ-4049-四叉树
  13. deepin驱动精灵_Deepin 20 Beta X64官方正式版(64位)
  14. 获取路由器内的ADSL上网账号和密码或者获取电脑内的ADSL上网账号和密码教程(by 星空武哥)
  15. HTML和CSS的知识点
  16. 简单实现购物车相同物品累加
  17. B 站,真香 ! ! !
  18. 一个WEB应用的开发流程
  19. 35岁前成功的黄金法则(12)-十二分努力
  20. 牛客网项目——前置技术(八):Kafka

热门文章

  1. stm32f10x单片机进阶--spi使用
  2. Vue-Router + Vuex 实现单页面应用
  3. MySQL Cluster 4个数据节点压力测试--mysqlslap工具压400W写
  4. .net mvc中级联的使用
  5. 00002-两数之和-leetcode-1.暴力法(枚举法),2.哈希表法,目前更新了枚举法
  6. 【剑指offer】面试题53 - II:0~n-1中缺失的数字(java)
  7. 折弯弹性计算公式_冲压模具:影响回弹因素、回弹计算公式计算,值得收藏
  8. java 翻转句子_Java编程-句子反转
  9. 编程题走迷宫_C++程序算法题----迷宫(一)
  10. python如何创建一个列表_在python中创建列表的最佳和/或最快方法