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之ConnectivityManager
    Android -- ViewDragHelper
    android 管理手机短信
    内存管理[6]测试堆的内存占用情况
    内存管理[5]通过 GetProcessHeaps 函数获取了当前进程的堆句柄列表
    内存管理[4]一个使用私有堆的例子
    内存管理[3]堆
    内存管理[2]
    内存管理[1]
  • 原文地址:https://www.cnblogs.com/wangyang0210/p/13914474.html
Copyright © 2011-2022 走看看