mysql中没有数组,有的时候不方便,可以利用JSON类型数据实现一个类数组功能。
1、数组生成
只贴出示意性代码
...
delimiter $$
drop procedure if exists sp_JSArr;
create procedure sp_JSArr(out jsArr json )
begin
declare retJson json default "[]" ;
set retJson= json_array_append (retJson ,"$",json_object("val",1));
set retJson= json_array_append (retJson ,"$",json_object("val",2));
set jsArr = retJson;
end $$
delimiter ;
...
2、使用方法
-- 返回数组
call sp_JSArr(jsArr );
if JSON_VALID(jsArr ) then
-- @i 为数组下标变量
set @i=0;
set @ArrLen = JSON_LENGTH(jsArr );
loop_PkArr:loop -- 循环开始
if @i>=@ArrLen then
leave loop_PkArr; --
end if;
-- 类似数组的使用方法
set @jsInex = concat("$[",i,"].val");
set @val= json_extract(jsArr ,@jsIndex) ;
set @i=@i+1;
end loop;
end if ;
MaraSun 2022-07-26 BJFWDQ
It is so hot that the temperature is 29.1 Celsius degree in the room