视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
删除mysql表部分关键字段重复的记录_MySQL
2020-11-09 18:07:54 责编:小采
文档
 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

下载本文
显示全文
专题