数据库去重-v1.0版

select catid from supe_categories where name='金融';
create table multmp select * from supe_spaceitems items,supe_categories cate where cate.name='金融' and items.catid=cate.catid;
create table tmpa as select itemid from multmp,(select subject from multmp group by subject having count(itemid)>1) t1 where multmp.subject=t1.subject;
create table tmpb as select min(itemid) as itemid from multmp group by subject having count(itemid)>1;
create table tmptmp as select t.itemid from (select multmp.itemid from multmp,tmpa where multmp.itemid=tmpa.itemid) t,tmpb where t.itemid<>tmpb.itemid group by t.itemid;

delete from supe_spacenews using supe_spacenews,tmptmp where supe_spacenews.itemid=tmptmp.itemid;
delete from multmp using multmp,tmptmp where multmp.itemid=tmptmp.itemid;
drop table tmpa;
drop table tmpb;
drop table tmptmp;

delete from supe_spaceitems using supe_spaceitems,supe_categories where supe_categories.name='金融' and supe_categories.catid=supe_spaceitems.catid;
insert into supe_spaceitems select * from multmp;
drop table multmp;

更新:去除所有的in操作,加速sql
遗留问题:使用临时表,这样不允许多方同时操作数据库。仍需改进,可能所有sql需要重新操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值