删除数据库重复的记录
删除数据库重复的记录
kaixinguo314 发表于2年前
删除数据库重复的记录
  • 发表于 2年前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

如果数据库中有重复数据,则对重复的数据保留一条,其他删出,以交易日期表举例,关联字段为唯一索引字段。

one:

delete exchangedate a
 where exists(select 1
                from (select *
                        from (select init_date,
                                     finance_type,
                                     exchange_type,
                                     min(rowid) as row_id,
                                     count(*) as row_count
                                from exchangedate
                            group by init_date, finance_type, exchange_type)
                       where row_count > 1) b
               where a.finance_type = b.finance_type
                 and a.exchange_type = b.exchange_type
                 and a.init_date = b.init_date
                 and a.rowid <> b.row_id);

two:

delete exchangedate a
 where a.rowid > (select min(rowid) 
                    from exchangedate b 
                   where a.finance_type = b.finance_type
                     and a.exchange_type = b.exchange_type
                     and a.init_date = b.init_date);

扩展:按某个字段分组,然后将这个字段下数据只保留一条记录。

delete hs_user.functiontomenu a
where exists(select 1 
               from (select menu_id,min(rowid) as row_id
                       from hs_user.functiontomenu
                   group by menu_id) b
              where a.menu_id = b.menu_id
                and a.rowid > b.row_id);

 

标签: delete、rowid
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 20
码字总数 19022
×
kaixinguo314
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: