zoukankan      html  css  js  c++  java
  • MySQL——删除重复数据

    前言

    数据导入的时候,导入了重复的数据

    内容

    结果

    delete from <table.name> where id in (select id from (select * from <table.name> where wxid in(select wxid from <table.name> group by wxid having count(wxid) >1) and id not in (select min(id) from <table.name> group by wxid having count(wxid)>1)) a);
    

    步骤

    查询重复数据的字段

    我这里是wxid

    select wxid from <table.name> group by wxid having count(wxid) >1;
    

    查询出重复数据字段中最小的自增ID

    select min(id) from <table.name> group by wxid having count(wxid)>1;
    

    筛选出将被删除的重复数据

    select * from <table.name> where wxid in(select wxid from <table.name> group by wxid having count(wxid) >1) and id not in (select min(id) from <table.name> group by wxid having count(wxid)>1);
    

    将需要被删除的自增ID筛选出来

    select id from (select * from <table.name> where wxid in(select wxid from <table.name> group by wxid having count(wxid) >1) and id not in (select min(id) from <table.name> group by wxid having count(wxid)>1)) a;
    

    根据ID删除重复数据

    ## 先通过select确认没有问题后再使用delete
    select * from <table.name> where id in (select id from (select * from <table.name> where wxid in(select wxid from <table.name> group by wxid having count(wxid) >1) and id not in (select min(id) from <table.name> group by wxid having count(wxid)>1)) a);
    
    ## 真正删除
    delete from <table.name> where id in (select id from (select * from <table.name> where wxid in(select wxid from <table.name> group by wxid having count(wxid) >1) and id not in (select min(id) from <table.name> group by wxid having count(wxid)>1)) a);
    
  • 相关阅读:
    Android 中Base64的操作
    android 异步图片处理 工具类
    android 跨应用跳转 启动其他应用指定界面
    C++代码案例
    Android 中 Base64的操作应用
    Python基础笔记1
    [linux] 大批量删除任务
    Python基础笔记3
    [R] 如何快速生成许多差异明显的颜色?
    Python基础笔记4
  • 原文地址:https://www.cnblogs.com/wangyang0210/p/13914474.html
Copyright © 2011-2022 走看看