mysql 初始存储过程 二

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 existsselect 语句)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()如果存在则更新,不存在则添加
       





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值