数据库去重有几种方法_数据库去重有几种方法

数据库去重有几种方法_数据库去重有几种方法MySQL数据库去重的方法​数据库最近有很多重复的数据,数据量还有点大,本想着用代码解决,后来发现用SQL就能解决,这里记录一下看这条SQLDELETEconsum_recordFROMconsum_record,(SELECTmin(id)id,user_id,monetary,consume_timeFROMconsum_recordGROUPBYuser_id,monetary,co…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

MySQL数据库去重的方法

​ 数据库最近有很多重复的数据,数据量还有点大,本想着用代码解决,后来发现用SQL就能解决,这里记录一下

看这条SQL

DELETE consum_record

FROM

consum_record,

(

SELECT

min(id) id,

user_id,

monetary,

consume_time

FROM

consum_record

GROUP BY

user_id,

monetary,

consume_time

HAVING

count(*) > 1

) t2

WHERE

consum_record.user_id = t2.user_id

AND consum_record.monetary = t2.monetary

AND consum_record.consume_time = t2.consume_time

AND consum_record.id > t2.id;

首先是将重复的记录查出来另存到一个集合(临时表t2), 集合里是每种重复记录的最小ID

consum_record.user_id = t2.user_id

AND consum_record.monetary = t2.monetary

AND consum_record.consume_time = t2.consume_time

AND consum_record.id > t2.id

这些关联是判断重复基准的字段

根据条件,删除原表中id大于t2中id的记录

到这里欢呼一句 SQL大法好

还是要多学习啊!SQL也不能拖后腿

但是在处理完成之后,数据库中的主键id不是连续的了,强迫症犯了

下面是解决办法:

​ 我这边处理方式是:先删除主键id字段,然后再重新生成主键id字段

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187010.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用rpm安装telnet软件并实现远程登录

    使用rpm安装telnet软件并实现远程登录一、RPM包管理工具的使用1、RPM包管理工具介绍·RedHat软件包管理工具(RedHatPackageManager,RPM)·RPM软件包工具常用于软件包的安装、查询、更新升级、校验、卸载以及生成.rpm格式的软件包等操作。·RPM软件包工具只能管理后缀是.rpm的软件包。软件包的命名格式:·软件名称-版本号(包括主版本号和次版本号).软件运行的硬件平台.rpm例:telnet-server-0.17-59.el7.x86_64.rpm。2、RPM工具的使用RPM

    2022年5月9日
    46
  • 薯条 SpringBoot 在IDEA中实现热部署 (JRebel实用版)「建议收藏」

    薯条 SpringBoot 在IDEA中实现热部署 (JRebel实用版)「建议收藏」热部署只是针对class文件,源文件这些。对于属性文件.xml或.properties,只要修改了,都需要重启服务器,因为属性文件是在服务器启动的时候加载的,不可能被热部署识别到。下载并安装Jrebel实例服务地址:https://jrebel.qekang.com/{GUID}自行生成GUID地址:在线生成GUID如果失效刷新GUID替换就可以!欢迎留言反…

    2022年5月22日
    108
  • openEuler安装_Java源代码会被编译成

    openEuler安装_Java源代码会被编译成openEulerLinux源代码编译安装Nginx升级系统和软件yum-yupdate关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld编辑/etc/selinux/config#SELINUX=enforcing修改为SELINUX=disabled#或者执行sed-i’s/SELINUX=enforcing/SELINUX=disabled/g’/etc/selinux/config保

    2022年9月28日
    0
  • jmeter正则提取器的使用_java正则表达式用法

    jmeter正则提取器的使用_java正则表达式用法一、正则表达式提取器各名词解(1)ApplytoMainsampleandsub-samples(作用于主节点的取样器及对应子节点的取样器)Mainsampleonly(仅作用于主节点的取样器)Sub-samplesonly(仅作用于子节点的取样器)Jmeter-VariableNametouse(作用于jmeter变量(输入框内可输入jmeter的变量名称),从指定变量值中提取需要的值)(2)要检查的响应字段1、主体:响应报文的主体,最常用2、Body(une.

    2022年9月10日
    0
  • 刷屏专用超长复制_跪求超超长刷屏字符剑。。

    该楼层疑似违规已被系统折叠隐藏此楼查看此楼….飘过…..飘过……飘过…….飘过……..飘过……..飘过……..飘过……..飘过…….飘过……飘过…..飘过….飘过…飘过..飘过.飘过.飘过.飘过..飘过…飘过….飘过…..飘过……飘过…….飘过……..飘过……..飘过….

    2022年4月8日
    94
  • Postman安装与入门简单教程[通俗易懂]

    Postman安装与入门简单教程[通俗易懂]在测试技术中,接口测试是最基础、最重要,也是收益最高的测试技术,作为接口测试工具中的No.1,一起来看看Postman是怎么入门的吧。目录1.安装Postman2.注册Postman账号并登录3.创建Collections4.创建Request5.简单的Demo测试1.安装PostmanPostman下载地址:https://app.getpostman.com/app/download/win64点开后机会自动下载最新版的Postman,如果链接打不开或者很慢也可以上百度去下载,版本旧一点没关系,

    2022年9月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号