zoukankan      html  css  js  c++  java
  • mysql json处理

     2016-11-18

    由于我们的爬虫开发偷懒,爬取回来的数据还是保持为json格式,所以需要进一步处理,从json格式的info字段中,提取出需要的信息作为新字段。

    MySQL 从5.7版本开始,已经对原生json格式提供支持,由于目前线上主流的版本还是停留在5.6,所以这时需要人工去处理json格式的数据。

    原始表示例数据如下:

    取info字段中的一条记录为例:

    {"title":"你不知道就out了,奥迪Coupe车型的第一次出现!","url":"http://mp.weixin.qq.com/s?__biz=MjM5NjM4NTAwMQ==&mid=2651782672&idx=1&sn=154dae8ec1c02403bab41c6f2c1ad679&chksm=bd1047968a67ce8086b9d8e2111ca33f49e74a44a24c9f05afac48c75e51147268573957eef9&scene=4#wechat_redirect","datetime":"2016-10-20 17:36"}

    需要将其中的title、url、datetime提取出来。以下是处理所用到的sql:

    SELECT
    CURDATE() AS sys_date,
    b.b_id AS id,
    c.brand AS brand,
    b.b_name AS brand_cn,
    a.wxid AS wechat_id,
    b.`name` AS wechat_cn,
    SUBSTRING_INDEX(SUBSTRING_INDEX(a.info,'"',12),'"',-1)  AS post_date,
    SUBSTRING_INDEX(SUBSTRING_INDEX(a.info,'"',4),'"',-1) AS post_title,
    SUBSTRING_INDEX(SUBSTRING_INDEX(a.info,'&mid=',-1),'&idx',1) AS post_id,
    a.sn AS post_sn,
    SUBSTRING_INDEX(SUBSTRING_INDEX(a.info,'"',8),'"',-1) AS post_url,
    SUBSTRING_INDEX(SUBSTRING_INDEX(a.ext,':',-2),',',1)  AS page_views,
    SUBSTRING_INDEX(SUBSTRING_INDEX(a.ext,':',-1),'}',1)  AS likes,
    1 / 0 AS notes
    FROM
        11_cmnc.message a JOIN 11_cmnc.subscription b JOIN 11_cmnc.wechat_conf c
    ON a.wxid = b.wxid
    AND b.b_id = c.id
    GROUP BY b.b_id,a.sn
    ORDER BY id,post_date;

    生成的数据如下:

    到这里,title、url、datetime已经从message表的info字段中提取出来了

  • 相关阅读:
    规约先行-(十五)索引规约
    规约先行-(十四)建表规约
    规约先行-(十三)安全规约
    规约先行-(十二)单元测试
    异常日志-(十一)日志规约
    异常日志-(十)异常处理
    10.25-ROS2安装
    安装sensor-sdk
    jz2440操作速查
    新版本uboot启动流程分析
  • 原文地址:https://www.cnblogs.com/cenliang/p/6078376.html
Copyright © 2011-2022 走看看