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);
    
  • 相关阅读:
    Infosec institute n00bs CTF writeup
    CTF学习之CODE
    ThinkPHP函数详解:C方法
    流程控制的替代语法
    Jquery DOM
    YII2 请求(request)
    YII2 运行概述(Overview)
    YII2 小部件(widgets)
    YII2 过滤器 filters
    YII2 随笔 视图最佳实践
  • 原文地址:https://www.cnblogs.com/wangyang0210/p/13914474.html
Copyright © 2011-2022 走看看