MySQL JSON字符串处理

 对于JSON字符串的处理是MySQL5.7后支持的功能,在项目中主要用到了两个函数:


1. JSON_EXTRACT ( a,b )  注:a为所需解析的字段值,b为取值表达式以$开头  '$.*' 为取出所有JSON串 ’$.key‘ 为取出特定的值 '$[n].key'为取出JSON数组中某个值 以此类推。

 2. JSON_UNQUOTE(value) 注:使用此函数的主要原因是因为在上个函数取出的值中将""作为了字符串,此函数可以取出双引号并且将值转换为字符串。

示例:JSON串为

[{"form":"sj","name":"时间","type":"select","required":"true","value":"2020-02-14"},{"form":"remark","name":"备注","type":"text","required":"false","value":"上班"}}]

那么我们要取json数组中的时间2020-02-14就要这么写

SELECT JSON_UNQUOTE ( JSON_EXTRACT ( variant_value, '$[0].value' ) )  AS value  FROM tablename

3.另外在sql中取出的JSON串的值是无法用于where语句后作为筛选条件的,如果是需要展示值得不同可以将查询出的结果集当作子表,用case函数来展示不同得值case函数得使用方法示例:

(1)select  case colum when '1' then '男' when '2' then '男'  else '..' end from ......

(2)select  case when  colum = '1'  then '男'  when colum = '2'  then '男'  else '..' end from ......

以上就是此次功能点中用到得在sql中对于JSON处理得主要方法记录一下已备查阅。

发布了6 篇原创文章 · 获赞 7 · 访问量 1099

猜你喜欢

转载自blog.csdn.net/weixin_43814408/article/details/104308875