comment ‘描述’
declare 变量名1,变量名2,变量3 类型
call 加上存储过程的方法名
存储过程找 对象里面的数据(
例如对象是jdata={a:‘1’,b:"2’})
写法是 jdata->>‘$.a’
存储过程中 ``是关键字转移的意思
select 查询的字段
赋值
select 查询的内容1,查询的内容2
into 变量1,变量2;
条件语句
if()
then
end if;
例子
if(变量1 is not null and 变量1!="") then
set 变量1 = concat('%',变量1,'%'); // concat()字符串拼接方法
end if;
if exists(select 语句)then // exists(selcet 语句)返回布尔值,如果select 语句查询结果有内容 返回true
内容
end if;
存储过程 数据格式为JSON对象
返回是JSON对象的结果
set 变量1 = json_object(
'变量1','值1',
'变量2','值2',
)
返回是JSON对象中的对象
set 变量1 = json_object(
'变量1','值1',
'变量2','值2',
'变量3', json_object(
'变量3-1','值3-1',
'变量3-2','值3-2')
)
返回是JSON数组的结果
select concat("[",group_concat(json_object(
"enterprise_name",a.enterprise_name,
"pro_name",a.jdata->>"$.pro_name",
"pro_type",a.pro_type,
"register_place",a.jdata->>"$.register_place",
"report_type",a.report_type,
"scale",a.jdata->>"$.scale", //jdata 是对象 能够获取到 jdata 里面scale的值
"chargeuser",(select username from tech_case_role where case_id=a.case_id and role ="项目负责人"),//值可以是查询语句的结果
"start_date",DATE_FORMAT(a.start_date,'%Y-%m-%d'),
"end_date",DATE_FORMAT(a.end_date,'%Y-%m-%d'),
"update_time",DATE_FORMAT(a.update_time,'%Y-%m-%d %H:%i:%s'),
"create_time",DATE_FORMAT(a.create_time,'%Y-%m-%d %H:%i:%s'),
)),"]")
into cases
from (
select b.* from XX表 b left join XX表 u on b.creator = u.username
where b.doctype="XXX项目"
and (d_date_e is null or d_date_e = "" or d_date_e ="null" or date_format(b.finish_time,'%Y-%m-%d %H:%i:%s') <= d_date_s))
and json_extract(b.results->>"$.results_data","$.search_result2") like d_filter2 or json_extract(b.results->>"$.results_data","$.conclusion") like d_filter2
order by b.report_no_full desc limit pos,pagesize
)as a;
set jdata=json_set(jdata,
"$.cases",cases,
"$.pagesize",pagesize,
"$.pagenum",pageindex+1,
"$.totalrecord",totalrecord,
"$.totalpage",totalpage,
);
set jdata=json_set(jdata,"$.token",token);
# 用到函数
# date_format()函数来显示不同的格式
# like 模糊查询关键字
# 数据存储的数据是json字符串(类型是vachar)。想要查询出来json中某个字段的值,用到方法是:JSON_EXTRACT()。
#语法: JSON_EXTRACT(json_doc, path[, path] …),实际用法:如果json字符串不是数组,则直接使用$.字段名即可
#例子 select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel"); 能取到 $.tel
# cast(字段名 as 转换的类型 )
# cast('["未关闭","待付款","进行中","已完成","已取消","已保存"]' as json)
#JSON_SET()如果存在则更新,不存在则添加