mysql 删除重复数据_日常答疑|MySQL删除重复数据踩过得坑

问题

群友提问:MySQL这样删除重复数据为啥不成功呢?

严小样儿:安排!

4d3bb9dcd438bdfbd69144e40e71f80a.png

咋一看,大家都说where子句里面应该使用极值函数,加个max就对了,这么简单!
# 大家想象中这样写是对的,其实仍然是错的!delete from p1     where idfrom p1 b                   where p1.name=b.name);
看到这里,很多经常写sql但是又不太精通sql的人都会说:纳尼??!尤其是经常使用Oracle的同学,更是百思不得其解!我在这里首先说一句:MySQL这样写的确是错的,Oracle这样写应该没问题!接下来,我们来研究一番,到底如何以这样的方式去重呢?!

安排

(原始数据)9f4a2af1b6ab238176ae24c32a98b8dc.png

一、预览数据

 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);

(重复值结果)

6669292582983a45510e9401b0192399.png

也就是说,利用上面的SQL语句可以查询到哪些是重复数据。

然而,在它前面加个delete却不能删除重复值!

DELETE FROM t     WHERE t.ID SELECT                       WHERE m.NAME=t.NAME AND m.PRICE = t.PRICE);

(报错截图)

3d03bf049e31dfbf0b9c0939cccf2844.png

三、正确答案

# 正确答案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;
(最终结果)2d1ae1f2be83bf07a15906b865927405.png划重点MySQL不能直接在查询结果中进行删除操作,需要先建立一个临时表。

更多精彩

传送门1:日常答疑|Python向量化操作、矩阵运算传送门2:日常答疑|Python处理时间格式并计算时间差值传送门3:分组排序求前三?TopN问题?一文教你MySQL各类排序操作传送门4:系列|七天PYTHON养成记之初识传送门5:系列|七天PYTHON养成记之函数

f6637da982a61bf379dceccd86c45246.png

看完,读完,要“在看” ↓↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜狗手机浏览器_搜狗推广开户费多少钱?【搜狗开户代理商】

搜狗开户流程提供落地页审核提供服务器ip 安排解析账户预存款4000币上传关键词及素材开启广告上线福如海广告&#xff0c;搜狗开户代理商全国行业开户&#xff0c;有无资质均可手机&#xff1a;18705657032【同微信】搜狗广告详细介绍搜狗广告展现形式PC端-搜狗搜索推广当网民在…

Linux命令终端提示符显示-bash-4.2#解决方法【转载】

昨天在配置linux&#xff0c;突然发现root登录的CRT的终端提示符显示的是-bash-4.2# 而不是root主机名 路径的显示方式。搞了半天也不知道为什么出现这种情况。今天终于搞定这个问题&#xff0c; 原因是root在/root下面的几个配置文件丢失&#xff0c;丢失文件如下&#xff1a…

python多久可以精通_学Python需要多久能学会?精通Python需要多长时间?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼严格意思上的说&#xff0c;Python其实是一个脚本语言&#xff0c;编程语言多种多样&#xff0c;但是却有开源和闭源之分&#xff0c;Python就是一种开放核心源代码编程语言&#xff0c;其开发代码的效率非常高&#xff0c;代码编写…

understand 6.0_软件工程专业篇-vc++6.0安装教程(解决win10不兼容)

在进行安装教程之前还是和大家说几句废话啊。VC6.0就是出品的一款开发C的IDE。所谓IDE就是&#xff1a;为了方便程序员开发&#xff0c;集成了代码编辑器、编译器、链接器、调试器等工具的集成开发环境。 现在外面企业已经很少有使用VC6.0的了&#xff0c;毕竟已经是将近17年前…

Linux的实际操作:时间日期类的实用指令(date cal)

1.date 显示当前日期 &#xff08;1&#xff09;date 显示当前时间 &#xff08;2&#xff09; date %Y 显示年份 date%m 显示月份 date%d 显示日 date "%Y-%m-%d %H:%M:%S" 显示年月日时分秒 注意&#xff1a;加号不能少 双引号中间的连接可以取任意符号 &a…

python如何为饼图添加标题_python – Matplotlib子图标题,图标题格式

我将如何格式化下面的饼图子图,以便在图标题和子图标题之间有更多的空白区域.理想情况下,子图标题也会更接近实际的饼图本身.我似乎无法在文档中找到任何可能启用此功能的内容,但我是matplotlib的新手.import matplotlib.pyplot as pltimport pandas as pdfrom pandas import D…

Linux的实际操作:搜索查找类的实用指令(find locate grep 管道符|)

1.find 将从指定目录向下递归地遍历其各个子目录&#xff0c;将满足条件的文件或者目录显示在终端 find 【搜索范围】 【选项】 文件 &#xff08;搜索范围往往是绝对路径或者相对路径&#xff09; 选项功能-name按照指定文件名查找文件-user查找属于指定用户名所有…

error:java:无效的源发行版_IDEA java出现无效的源发行版14解决方案_java

这篇文章主要介绍了IDEA java出现无效的源发行版14解决方案,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下问题描述问题原因出现该问题的原因是项目Project当中的jdk与电脑当中的jdk版本不一致造成的。解决方法…

为什么买入不了创业版_详解实战抄底——如何抄到下引线的最底端。及妖股的首板买入点...

11月26日上周四&#xff0c;如果方便的朋友可以打开下创业板当天的分时图&#xff0c;更加有利于理解。(下图所示)主板和创业板11月26日分时图当天创业板冲高回落开始探底&#xff0c;我在10点17分的时候提示准备抄底&#xff0c;在10点22分的时候&#xff0c;再次强调创业板跌…

Linux的实际操作:文件目录类实用指令(压缩gzip tar -zcvf和解压缩gunzip tar -zxvf)

1.gzip 用于压缩文件 &#xff08;压缩文件后&#xff0c;原文件就会消失自动成为一个新的压缩文件&#xff0c;意思是压缩后不保留原文件&#xff09; 2.gunzip 用于解压文件 &#xff08;解压缩后&#xff0c;压缩文件也会自动生成一个未解压文件&…

python最常用的编程方式是什么_python常用模块和对象编程

1.摘要常用模块对象编程领域模型2.常用模块2.1shutil模块2.1.1 shutil.copyfileobj(fsrc, fdst[, length])1 f open("test.txt","r",encoding"utf-8")2 f1 open("test2.txt","w",encoding"utf-8")34 shutil.cop…

keil+proteus 制作计算器_设计费 | 工程设计费计算器使用指南

工程设计费&#xff0c;即工程设计收费&#xff0c;是设计人根据发包人的委托&#xff0c;提供编制建设项目初步设计文件、施工图设计文件、非标准设备设计文件、施工图预算文件、竣工图文件等服务所收取的费用。工程设计收费标准2002年国家发展计划委员会和建设部发布了计价格…

解决:Xshell如何修改默认的登录用户,自动跳转到密码界面

1.打开Xshell会话&#xff0c;选择远程主机号&#xff0c;点击“打开会话文件夹” 2.右键&#xff0c;用记事本打开 3.打开后CtrlF搜索UserName 4.将参数改为空的即可

wegame一键蹲替换文件_如何在ps里批量替换姓名、编号等内容(变量和图像处理器)...

大家好今天的教程比较冷门但是应用的却比较广泛就是变量图像处理器比如会员卡、胸牌等有很多姓名或标号需要替换时这个组合技简直无敌命令位置【图像-变量-定义】【文件-脚本-图像处理器】具体用法以我这张图为例我需要把【号码】图层的内容替换成01-09那么我需要准备些什么呢&…

小米SN保修_首次体验小米手机官方售后全程回顾:维修速度快服务态度好

作为一名搞机玩家&#xff0c;这么多年买了很多也用了很多的小米产品&#xff0c;这是第一次使用小米的官方售后服务&#xff0c;所以趁着这个机会给大家说一下售后的感受&#xff1a;故障机是小米MIX 3已过保&#xff0c;老爸用的屏幕摔坏了一角&#xff0c;时间长了加上又摔所…

Linux的实际操作:用户管理(查ls -ahl,chown改文件所属者,chgrp改文件所属组,usermod改用户所属组)

在Linux中的每个用户必须属于一个组&#xff0c;不能独立于组外 在Linux中每个文件的所属者、所属组、其它组的概念 例如有一个文件是user1创建的&#xff0c;那么这个文件的所属者就是user1&#xff0c;这个文件在默认情况下属于user1所在的组当然&#xff0c;这个所属组也可…

restful接口开发实例_Restful接口开发与测试—接口测试

开发完接口&#xff0c;接下来我们需要对我们开发的接口进行测试。接口测试的方法比较多&#xff0c;使用接口工具或者Python来测试都可以&#xff0c;工具方面比如之前我们学习过的Postman或者Jmeter &#xff0c;Python脚本测试可以使用Requests unittest来测试。测试思路功…

博主已开启评论精选什么意思_小白必看!想要成为小红书博主,首先要掌握4个工具!...

首先我们要明确一点&#xff0c;不是每个人都要成为小红书博主。但&#xff0c;如果你想要成为博主&#xff0c;那么就需要了解下面这4个工具&#xff0c;可以让你成功迈出小红书博主的第一步。01搜秀数据小红书数据分析平台。四大功能&#xff1a;最新推广情报、KOL智能筛选、…

Linux的实际操作:文件和文件夹的权限解读

1.权限的基本介绍&#xff1a; ls -l -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc 0-9位说明 第0位确定文件的类型&#xff08;d&#xff0c;-&#xff0c;1&#xff0c;c&#xff0c;b&#xff09; 第1-3位确定所属者&#xff08;该文件的所属者&#xff09;拥有该文件…

scratch 素材_scratch书籍免费领

今天要写的内容如主图啦~~~这几天去白嫖了一些文章和scratch的书籍。emmmm. &#xff1f;&#xff1f;&#xff1f;书籍如下&#xff0c;可看我博客推荐的好书&#xff1a;scratch好书推荐_scratch,少儿编程,scratch少儿编程_weixin_43405101的博客-CSDN博客​blog.csdn.net书籍…