一、今天在开发中遇到mysql中遍历json数据的需求,查了些资料,然后特此记录,

二、在mysql5.7中是有一个方法用来取json数据的,JSON_EXTRACT(JSON.Val,key),详细代码如下

三、代码如下:

CREATE DEFINER=`root`@`localhost` PROCEDURE `fun_sys_user_local_mobileReg`(pUserId int,pIP varchar(95),params varchar(5000),out pRlt varchar(800))

BEGIN

-- BS用户移动版启用--本地存储过程

-- {"funName":"sys_user_mobileReg","uuid":"c39a37r98e06t40o49p30","localFunName":"sys_user_local_mobileReg","userNo":{"userNo0":"admin","userNo1":"test","userNo2":"hyc"},"userNoLen":3}

declare vUserNo,vUserNoTmp,vUserNoTmpKey varchar(200);

declare vUserNoLen int;

declare i int default 0;

set vUserNo = params->>'$.userNo';

set vUserNoLen = params->>'$.userNoLen';

while i

set vUserNoTmpKey = concat('$.userNo',i);

select JSON_EXTRACT(vUserNo, vUserNoTmpKey) into vUserNoTmp;

set vUserNoTmp = replace(vUserNoTmp,'\"','');

update user set mobileActive = 1 where userNo = vUserNoTmp;

set i = i+1;

end while;

set pRlt=concat('{"success":true,"msg":""}');

end

CREATE DEFINER=`jovie`@`%` PROCEDURE `fun_api_uploadEmpAttInfo`(pUserId int,pIP varchar(95),params varchar(5000),out pRlt varchar(800))

BEGIN

-- 考勤记录处理

-- {token:"4fb7edb9-8f21-4295-83ad-8552590deb0f",methodName:"uploadEmpAttInfo",clockNo:"006",

-- recData:[{"clockNo":"006","cardNo":"10066","cardTime":"2018-7-13 13:58:21"},{"clockNo":"006","cardNo":"10066","cardTime":"2018-7-13 13:58:23"}]}

declare vClockNo,vCardNo,vCardTime,vOriginal,vKeyTmp varchar(45);

declare vRecData,recTmp varchar(5000);

declare vEmpId,i,vRecLen int default 0;

declare vCardDate date;

set vRecData = params->>'$.recData';

set vRecLen = JSON_LENGTH(vRecData);

while i < vRecLen do

set vKeyTmp = concat('$[',i,']');

select JSON_EXTRACT(vRecData, vKeyTmp) into recTmp;

set vClockNo = JSON_EXTRACT(recTmp, '$.clockNo');

set vClockNo = replace(vClockNo,'\"','');

set vCardNo = JSON_EXTRACT(recTmp, '$.cardNo');

set vCardNo = replace(vCardNo,'\"','');

set vCardDate = JSON_EXTRACT(recTmp, '$.cardDate');

set vCardDate = replace(vCardDate,'\"','');

set vCardTime = JSON_EXTRACT(recTmp, '$.cardTime');

set vCardTime = replace(vCardTime,'\"','');

set vCardDate = cast(vCardTime as date);

set vOriginal = concat(vClockNo,'_',vCardNo,'_',vCardTime);

select empId into vEmpId from kqcard where cardNo = vCardNo;

set i = i + 1;

if not exists(select original from epcardoriginalrec where original = vOriginal) then

insert into epcardrec (clockNo,cardNo,empId,cardDate,cardTime,original)

values (vClockNo,vCardNo,vEmpId,vCardDate,vCardTime,vOriginal);

end if;

end while;

set pRlt= concat('{"success":true,"total":1,"msg":"考勤数据插入成功!"}');

end

也欢迎登录我的个人网站,里面有更多的文章及技术咨询在等你:http://www.guangmuhua.com

mysql 遍历json数据结构,mysql存储过程中遍历json数据相关推荐

  1. mysql 多个游标_mysql 存储过程中使用多游标

    mysql的存储过程可以很方便使用游标来实现一些功能,存储过程的写法大致如下: 先创建一张表,插入一些测试数据:DROP TABLE IF EXISTS netingcn_proc_test; CRE ...

  2. mysql 5.7 json函数_Mysql5.7中对于JSON函数设置的案例详细说明

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  3. 树的基本概念和遍历规则 数据结构和算法 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)

    zsychanpin 博客园 首页 新随笔 联系 订阅 管理 树的基本概念和遍历规则 树的递归定义 树是n(n>0)个结点的有限集,这个集合满足下面条件:       ⑴有且仅有一个结点没有前驱 ...

  4. js mysql json字符串转数组中_php数据库数据转换为js中的json对象

    / 1.在company数据user表中取出10条数据,保存为数组 2.在将数组转化为json格式,传递给js 3.用json解析器将传递过来的json字符串转化为json对象, 4.用documen ...

  5. MySQL数据库使用连接更新表中某个字段数据

    连接更新表中数据使用: update .. join .. 语句 上一篇博文创建了一个商品分类表(good_cates),并完成了商品分类信息的插入,如果需要更新goods表中的商品分类信息,把商品分 ...

  6. java遍历对象属性_java开发中遍历一个对象的所有属性并set值 缓存优化

    今天技术之家陪你一起了解java开发中遍历一个对象的所有属性并set值 缓存优化: Java反射 1.创建缓存池,可以加快访问速度private static final Map> CACHE  ...

  7. 详解Python中的JSON以及在Python中使用JSON

    首先什么是JSON? JSON(JavaScript Object Notation, JS 对象简谱,即JavaScript对象表示法) 是一种用于表示结构化数据的流行数据格式.      在服务器 ...

  8. php取json子对象属性,php中输出json对象的值(实现方法)

    实例如下所示: $json = '{"report":{"date":"2012-04-10","content":&q ...

  9. Json作用及Unity中读取json内容

     一.Json简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,主要用于传送数据.它基于JavaScript(Standard ECMA-262 3 ...

  10. oracle存储过程遍历,oracle存储过程中遍历的疑惑

    此前很少使用oracle,现在进入一项目,使用的是oracle,瞬间拙计. 发现别人写的存储过程中有两种写法去遍历记录,如下: Procedure Syn_His_Main Is sqlStr Var ...

最新文章

  1. C# tips ---值类型的装箱和拆箱
  2. 波卡链Substrate (7)Babe协议五“Epoch纪元更新”
  3. hdu1006 Tick and TIck
  4. CKEditor 4 编辑器已与 Vue.js 集成
  5. 404 Note Found 队 Alpha8
  6. appium移动自动化测试-安装2
  7. dnf 台服服务器pvf修改器,求教怎么用pvf修改器自制装备
  8. 计算机网络中的猫,猫(调制解调器)和路由器有什么区别和功能?
  9. 80x86系统微处理器简介
  10. 抖音跳转微信小程序、公众号、个人微信、微信群技术路线
  11. 实验1 Bean管理
  12. [高数][高昆轮][高等数学上][第一章-函数与极限]09.连续函数的运算和函数的连续性...
  13. 推荐一款开源跨平台 [业务大屏,数据报表] 快速开发平台
  14. Python基础之 3. 容器:字符串、列表、元组、字典
  15. NOJ 1116 哈罗哈的大披萨 【淡蓝】 [状压dp+各种优化]
  16. dex2oat对应用启动性能的影响
  17. UOS如何格式化U盘
  18. 联想企业网盘,为什么让500强企业情有独钟?
  19. ajax数据交互 手动搭建后台
  20. 利用zabbix监控3par光模块的发光功率

热门文章

  1. 【自学C语言】自学C语言之与,或,异或关系
  2. 小程序获取百度地图api
  3. 《深度学习入门-基于Python的理论与实现》第七章带读 -- CNN介绍
  4. 动态矩阵控制(DMC)的简单理解及其示例
  5. click事件修改css_CSS Click事件
  6. 计算机网络知识之交换机、路由器、网关、MAC地址
  7. java 回收器有几种_Java垃圾回收器种类
  8. 走进“开源SDR实验室” 一起玩转4G/5G开源项目srsRAN(srsLTE升级版):安装方法+NB-IoT测试
  9. 安川机器人外部急停信号点不开_安川机器人示教器常见故障维修方法
  10. 电子公文流转暨无纸办公系统