当前位置: 首页 > wzjs >正文

网站接任务来做wordpress 手机首页

网站接任务来做,wordpress 手机首页,网站加入地图,毕业设计网站做几个JSON 一、问题描述二、ORACLE<一>、键值对拆分(REGEXP_SUBSTR)<二>、转为JSON<三>、不足 三、MYSQL<一>、键值对拆分(RECURSIVE)<二>、转为JSON 一、问题描述 假如某张表的某列是键值对数据,如何把这个键值对转为json格式,数据如下所示 dynast…

JSON

  • 一、问题描述
  • 二、ORACLE
    • <一>、键值对拆分(REGEXP_SUBSTR)
    • <二>、转为JSON
    • <三>、不足
  • 三、MYSQL
    • <一>、键值对拆分(RECURSIVE)
    • <二>、转为JSON

一、问题描述

假如某张表的某列是键值对数据,如何把这个键值对转为json格式,数据如下所示

dynastyvalue
唐朝唐太宗:李世民;唐高宗:李治;唐玄宗:李隆基;…
汉朝汉高祖:刘邦;汉文帝:刘恒;汉景帝:刘启;汉武帝:‘刘彻’;…

需要转成下面这种格式

dynastyvalue
唐朝[{“key”:“唐太宗”,“value”:“李世民”,“order”:“1”},{“key”:“唐高宗”,“value”:“李治”,“order”:“2”},{“key”:“唐玄宗”,“value”:“李隆基”,“order”:“3”}…]
汉朝[{“key”:“汉高祖”,“value”:“刘邦”,“order”:“1”},{“key”:“汉文帝”,“value”:“刘恒”,“order”:“2”},{“key”:“汉景帝”,“value”:“刘启”,“order”:“3”},{“key”:“汉武帝”,“value”:“刘彻”,“order”:“2”}…]

二、ORACLE

<一>、键值对拆分(REGEXP_SUBSTR)

with split_data as (select dynasty,regexp_substr(value,'[^;]+',1,level) as part,level as part_numfrom tableconnect by regexp_substr(value,'[^;]+',1,level) is not null
)select dynasty,part_num,regexp_substr(part,'[^;]+',1,1) as key,regexp_substr(part,'[^;]+',1,2) as valuefrom split_data

执行完就是如下形式

dynastypart_numkeyvalue
唐朝1唐太宗李世民
唐朝2唐高宗李治
唐朝3唐玄宗李隆基
汉朝1汉高祖刘邦
汉朝2汉文帝刘恒
汉朝3汉景帝刘启
汉朝4汉武帝刘彻

<二>、转为JSON

转为JSON有现成的转JSON函数,完整代码如下

with split_data as (select dynasty,regexp_substr(value,'[^;]+',1,level) as part,level as part_numfrom tableconnect by regexp_substr(value,'[^;]+',1,level) is not null
),key_value_pairs as (select dynasty,part_num,regexp_substr(part,'[^;]+',1,1) as key,regexp_substr(part,'[^;]+',1,2) as valuefrom split_data
)select dynasty,json_arrayagg(josn_object('key' VALUE key,'value' VALUE value,'order' value split_num))from key_value_pairsgroup by dynasty

<三>、不足

  • 有的键值对比较大,在ORACLE是CLOB类型,不支持字符串拆分,只能用如下MYSQL方法,再进行数据同步

三、MYSQL

<一>、键值对拆分(RECURSIVE)

  • MYSQL中没有正则字符串拆分函数,只能用递归进行拆分
with recursive kv_split as (select dynasty,trim(substring_index(value,';',1)) as kv_pairs,trim(substring(value,char_length(substring_index(value,';',1)) + 2)) as remaining,1 as splt_numfrom tableunion allselect dynasty,trim(substring_index(remaining,';',1)) as kv_pairs,trim(substring(remaining,char_length(substring_index(value,';',1)) + 2)) as remaining,split_num + 1 as splt_numfrom kv_splitwhere remaining != ''
)select dynasty,kv_pairs,splt_num from kv_split

执行完为如下形式,跟ORACLE大同小异

dynastypart_numkv_pairs
唐朝1唐太宗:李世民
唐朝2唐高宗:李治
唐朝3唐玄宗:李隆基
汉朝1汉高祖:刘邦
汉朝2汉文帝:刘恒
汉朝3汉景帝:刘启
汉朝4汉武帝:刘彻

<二>、转为JSON

转成JSON跟ORACLE一样,有现成的转JSON函数,完整代码如下所示

with recursive kv_split as (select dynasty,trim(substring_index(value,';',1)) as kv_pairs,trim(substring(value,char_length(substring_index(value,';',1)) + 2)) as remaining,1 as splt_numfrom tableunion allselect dynasty,trim(substring_index(remaining,';',1)) as kv_pairs,trim(substring(remaining,char_length(substring_index(value,';',1)) + 2)) as remaining,split_num + 1 as splt_numfrom kv_splitwhere remaining != ''
)select dynasty,json_arrayagg(json_object('key',cast(substring_index(kv_pairs,':',1) as unsigned),'value',substring_index(kv_pairs,':',-1),'order',split_num)) as json_resultfrom kv_splitgroup by dynasty
http://www.dtcms.com/wzjs/780462.html

相关文章:

  • 网站seo基础wordpress wpautop
  • 炫酷表白网站在线制作wordpress ajax 加载文章内容
  • c 网站开发网易云课堂百度云下载装饰
  • 松江网站建设培训慈溪开发小学网站建设
  • 简洁物流网站模板免费下载军事的网站应如何建设
  • 企业网站建立可以做雷达图的网站
  • 做网站后台怎么搭建浙江网警
  • 做机械的网站郑州建设企业网站
  • 企业网站板块外贸网站建设制作公司
  • 优化网站软文买域名需要备案吗
  • 西安建设局网站小孩把怎么搭建app
  • 淘客推广个人网站怎么做廊坊市 广阳区城市建设局网站
  • 新浪网站用什么语言做的网线制作方法
  • 网站建设和运维小白安装wordpress
  • 站群wordpress可以建设网站的软件
  • 免费网站代码前端网站开发流程图
  • 移动网站建设是什么意思国内最大ae模板下载网站
  • 网站关键词如何做竞价上海人才市场
  • 什么样的资质做电子商务网站巴中手机网站建设
  • 门户网站风格网站系统建设的目标
  • 外贸一般在哪个网站做的网络整合营销服务商
  • 做网站横幅技巧东营房产信息网
  • c 做网站加载多个图片做宣传图片的网站
  • 动漫网站模板有赞短网址生成
  • 淄博网站排名seo网站页面布局优化
  • 网站建站建设网站西安网站建设seo竞价
  • 云南网站开发公司建设银行网站查开户行
  • 网站转出企业网站建设的目的和意义
  • 网站推广优化外包便宜中裕隆建设有限公司网站
  • 商城网站建设分为几块如何查询网站的主机