zoukankan      html  css  js  c++  java
  • 京东联盟开发(12)——删除MySQL表中重复记录并且只保留一条

    本文介绍如何删除商品表中的一些重复记录。

    有时,一条商品由于有多个skuid,比如某种手机有不同颜色,但价格、优惠等信息却是一致,导致其被多次收录。由于其各种条件基本类似,这样它在商品中多个sku都排一起。一方面影响占用了表的空间,另一方面给客户的效果也不美观。这里需要删除这些重复记录。

    一、设定唯一标识

    通过截取商品前面指定长度的字符,来给商品设定唯一标记。

    SQL脚本如下

    UPDATE `yhq_jdunion_goods3` SET `unionid` = LEFT(`goodsname`, 18);

    二、搜索重复数据

    搜索一下重复记录有多少条。SQL脚本如下

    select `unionid`,count(*) as count from `yhq_jdunion_goods3` group by `unionid` having count>1

    搜索后可以看到有很多重复商品

    三、删除多余记录

    SQL脚本如下

    delete from `yhq_jdunion_goods3` where  
    id not in( select id from (select max(id) as id,count(`unionid`) as count from `yhq_jdunion_goods3` 
    group by `unionid` having count =1 order by count desc) as tab)
    AND
    id not in( select id from (select max(id) as id,count(`unionid`) as count from `yhq_jdunion_goods3`
    group by `unionid` having count >1 order by count desc) as tab)

    最后,再用搜索重复记录的脚本搜索验证一下,发现没有重复的了。

  • 相关阅读:
    SQLite3 of python
    爬虫半成品
    python初体验 ——>>> 模拟体育竞技
    文件操作
    numpy 库简单使用
    numpy 与 matplotlib 的应用
    面向对象的详细解读
    使用python进行微信好友分析
    我的第一个爬虫实验
    排球训练营
  • 原文地址:https://www.cnblogs.com/txw1958/p/jdunion-remove-repetitive-goods.html
Copyright © 2011-2022 走看看