Heim >Datenbank >MySQL-Tutorial >删除mysql表部分关键字段重复的记录_MySQL

删除mysql表部分关键字段重复的记录_MySQL

WBOY
WBOYOriginal
2016-06-01 13:45:581031Durchsuche

bitsCN.com

 

清理Statistic每天的重复数据【即Date Server Item SubItem 完全相同,Id肯定不同,Value可能相同】

先看一下Statistic表结构

 

/

 

 

 

 

处理样本:

/

主要实现目的:

 

删除Date Server Item SubItem 完全相同,Id肯定不同,Value可能相同的记录

比如:

 2011-07-27 | mx1.dns.com.cn | SEND_MAIL | TOTAL                      | 14522 |          | 229         【删除】

 2011-07-27 | mx1.dns.com.cn | SEND_MAIL | TOTAL                      | 14795 |          | 248         【保留】

实现过程:

 

第一步:创建与Statistic表结构完全相同的临时表

use Statistic;

 

 

create table s_tmp as select * from Statistic where 1=2;

 

第二步:根据Id(自动增长)提取较新数据到临时表

insert into s_tmp select a.* from Statistic a,Statistic b where a.Date=b.Date and a.Server=b.Server and a.Key=b.Key and a.SubKey=b.SubKey and a.id > b.id;

 

第三步:根据临时表里的数据的日期信息,将原表的对应日期的数据删除

delete  from Statistic where Date in (select distinct Date  from s_tmp );

 

第四步:将临时表里的数据导入Statistic

insert into Statistic select * from  s_tmp;

 

第五步:最后清空临时表

delete * from s_tmp;

 

 

 

 

实现结果:(去重后)

/

bitsCN.com
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn