zoukankan      html  css  js  c++  java
  • mysql 解析 json格式的字段

    # 创建一个存储过程,解析某表的一个json串字段,并拆分字段存入到表
    # 要解析的json串格式 :  [{"count":22,"prizeType":6,"prizeValue":11012},{"count":44,"prizeType":6,"prizeValue":21000}]
    delimiter $$
    use `marketcenter`$$ drop procedure if exists `p_gift_count`$$ create definer=`root`@`%` procedure `p_gift_count`() begin declare i int default 0; #内层循环,json串的列表循环 declare iid int default 0; #表记录的主键id declare jsonStr varchar(255); #接收json串字段 declare flag int default 0; #游标循环结束标识 declare cur cursor for select t.`id`,t.`attr` from prize_package_template t; #定义游标 declare continue handler for not found set flag=1;#游标循环结束条件 delete from mldn.`temp_prize_template`; open cur; fetch cur into iid,jsonStr; #游标循环获取数据并赋值 while flag<>1 do #select t.`attr`->>'$[*]' into @aa from prize_package_template t where t.id=12000; select json_length(jsonStr); set @len=json_length(jsonStr); #获取json列表字符串的长度 set i=0; while i<@len do select json_extract(jsonStr,concat('$[',i,']')) into @res; #按顺序解析 json列表元素 select i; select @res; #解析 json的具体字段 insert into mldn.`temp_prize_template` values(iid,json_extract(@res,'$.prizeValue'),json_extract(@res,'$.prizeType'),json_extract(@res,'$.count')); set i=i+1; end while; fetch cur into iid,jsonStr; end while; end$$ delimiter ;
  • 相关阅读:
    React 生命周期
    css 多行文本以...代替
    微信JSSDK配置文件说明
    zepto阻止事件冒泡
    PHP 图片处理PNG颜色丢失
    React 学习笔记(一)
    webpack webpack-dev-server使用指南
    为什么需要使用模块打包工具?
    如何实现微信公户绑定公众号业务
    iOS 手势
  • 原文地址:https://www.cnblogs.com/xiaoxiao075/p/13559554.html
Copyright © 2011-2022 走看看