CREATE PROCEDURE s
()
BEGIN
DECLARE user_ids BIGINT;
DECLARE mobile varchar(255);
DECLARE dones INT;
DECLARE sum INT DEFAULT(0);
DECLARE cur_user_id CURSOR FOR
SELECT user_id,SUBSTRING(payload->".mobile",2,CHARLENGTH(payload−>".mobile",2,CHAR_LENGTH(payload->".mobile",2,CHARLENGTH(payload−>".mobile")-2) AS mobile FROM hr_f_personal_archives_version WHERE payload->".mobile"!=′无′ANDpayload−>".mobile"!='无' AND payload->".mobile"!=′无′ANDpayload−>".mobile"!=‘None’ AND payload->".identity"IN(SELECTpayload−>".identity" IN(SELECT
payload->".identity"IN(SELECTpayload−>".identity" AS ‘身份证号’ FROM hr_f_personal_basic_information hr WHERE payload->".mobile"="None"ANDpayload−>".mobile"="None" AND payload->".mobile"="None"ANDpayload−>".emergencyContactMobile"=“无”);
#游标中的内容执行完后将done设置为1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET dones=1;
#打开游标
open cur_user_id;
#执行循环
posLoop:loop
set sum=sum+1;
#判断是否结束循环
if dones=1 then
leave posLoop;
END IF;
#取游标中的值
FETCH cur_user_id INTO user_ids,mobile;
update hr_f_personal_basic_information set payload=JSON_SET(payload, "$.mobile", mobile) where user_id=user_ids;
update hr_user_info set mobile= mobile where id=user_ids;
select user_ids,mobile;
#select user_ids,mobil;
END LOOP posLoop;
#释放游标
close cur_user_id;
select sum;
END
drop PROCEDURE s
call s
();