首页 > 数据库 >mysql重复记录处理

mysql重复记录处理

时间:2023-06-01 11:13:40浏览次数:39  
标签:name 处理 mysql mobile address signer operation 重复记录 id

这里记录一下用到的语句和语句模板:

-- 查询出重复的数据
SELECT
COUNT(*) as repeats,
address,
signer_name,
signer_mobile
FROM user_operation_useraddress
GROUP BY
address,
signer_name,
signer_mobile
HAVING
repeats > 1;

-- 查询出重复的数据中最小的id
SELECT
MIN(id) as min_id,
COUNT(*) as repeats,
address,
signer_name,
signer_mobile
FROM user_operation_useraddress
GROUP BY
address,
signer_name,
signer_mobile
HAVING
repeats > 1;

-- 查出重复的数据中非最小的id(需要删除的)
SELECT
id
FROM user_operation_useraddress
WHERE
(address, signer_name, signer_mobile) IN (
SELECT
address,
signer_name,
signer_mobile
FROM user_operation_useraddress
GROUP BY
address,
signer_name,
signer_mobile
HAVING
COUNT(*) > 1
)
AND id NOT IN (
SELECT
MIN(id)
FROM user_operation_useraddress
GROUP BY
address,
signer_name,
signer_mobile
HAVING
COUNT(*) > 1
);

-- 建立一张临时表t
SELECT
id
FROM (
SELECT
id
FROM user_operation_useraddress
WHERE
(address, signer_name, signer_mobile) IN (
SELECT
address,
signer_name,
signer_mobile
FROM user_operation_useraddress
GROUP BY
address,
signer_name,
signer_mobile
HAVING
COUNT(*) > 1
)
AND id IN (
SELECT
MIN(id)
FROM user_operation_useraddress
GROUP BY
address,
signer_name,
signer_mobile
HAVING
COUNT(*) > 1
)
) as t;

-- 删除重复的数据(只保留一条,保留最小id的)
DELETE FROM user_operation_useraddress
WHERE
id IN (
SELECT
id
FROM (
SELECT
id
FROM user_operation_useraddress
WHERE
(address, signer_name, signer_mobile) IN (
SELECT
address,
signer_name,
signer_mobile
FROM user_operation_useraddress
GROUP BY
address,
signer_name,
signer_mobile
HAVING
COUNT(*) > 1
)
AND id IN (
SELECT
MIN(id)
FROM user_operation_useraddress
GROUP BY
address,
signer_name,
signer_mobile
HAVING
COUNT(*) > 1
)
) as t
);

标签:name,处理,mysql,mobile,address,signer,operation,重复记录,id
From: https://www.cnblogs.com/zhyp/p/17448373.html

相关文章

  • 高频面试题|如何解决MySQL主从复制延时问题
    作者:楼仔来源:https://mp.weixin.qq.com/s/Jfrp-pLH_nfzKzwU-6gY5w这篇文章是去年写的,但是阅读量很低,不想让好的文章被埋没,重新整理后,可读性更强,文末有上周六技术派直播视频。MySQL主从一直是面试常客,里面的知识点虽然基础,但是能回答全的同学不多。比如我之前面试小米,就被问......
  • jQuery 是javascript的一个库(常用插件、处理器)
    jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validationjQuery就是javascript的一个库,把我们常用的一些功能进行了封装,方便我们来调用,提高我们的开发效率。极大地简化了JavaScript编程。Javascipt跟jQuery的区别:Javascript是一门编程语言,我们用......
  • ARM64 el1_irq 处理
     .align6el1_irq:kernel_entry1msrdaifclr,#1//enablefiqenable_dbg_if_not_steppingx0#ifdefCONFIG_TRACE_IRQFLAGSbltrace_hardirqs_off#endif#ifdefCONFIG_PREEMPTget_thread_infotskldrw24,[tsk,#TI_PREEMPT]//getpreemptcountad......
  • MySQL数据库10秒内插入百万条数据
    publicclassBaseDao{//静态工具类,用于创建数据库连接对象和释放资源,方便调用//导入驱动jar包或添加Maven依赖(这里使用的是Maven,Maven依赖代码附在文末)static{try{Class.forName("com.mysql.cj.jdbc.Driver");}catch(Cla......
  • ceph问题处理
    ceph常见问题处理:https://access.redhat.com/documentation/zh-cn/red_hat_ceph_storage/5/html/troubleshooting_guide/most-common-ceph-osd-errors  1、问题报错1:health:HEALTH_WARN1monitorshavenotenabledmsgr2解决:cephmonenable-msgr2  2、问题报错2:he......
  • C#中通过连接池连接mysql数据库
       使用连接池可以提高C#程序连接MySQL数据库的性能,使得不必每次建立新的物理连接。 usingSystem.Data;usingMySql.Data.MySqlClient;namespaceConsoleApp1{classProgram{privateconstintMAX_POOL_SIZE=100;//设置最大连接数......
  • java List分批处理
    1packagecom.example.demo;2importcom.google.common.collect.Lists;3importjava.util.ArrayList;4importjava.util.List;5publicclassTest{6publicstaticvoidmain(String[]args){7List<Integer>list=newArrayList<......
  • jmeter--连接mysql数据库
    本文讲解一下,如果用jmeter连接数据库。一般平常工作中使用jmeter连接数据库的作用主要包括:本身对数据库进行测试(功能、性能测试)时会需要使用jmeter连接数据库功能测试时,测试出来的结果需要和数据库中的数据进行对比是否正确一致。这时候可以通过jmeter连接数据查询出来数据,然......
  • 简单封装一下pymysql库
      简单封装一下pymysql库my_pymysql.py#!/bin/python#-*-coding:utf-8-*-importpymysqlimportnumpydefget_connect(**kwargs):mysqldb=pymysql.connect(host=kwargs.get('host'),user=kwargs.get('user'),passw......
  • Python3 环境下使用 MySQLdb 库
    方法一:可以使用mysqlclient库安装:pipinstallmysqlclient 可能还需要下面对应的库,或者其它库#apt-getinstallmysql-dev或者#yuminstallmysql-devel使用:importMySQLdb 方法二:使用pymsql,这个需要做程序改造了......