JSON增强
- 内联路径操作符
- JSON聚合函数
- JSON实用函数
- JSON合并函数
- JSON表函数
内联路径操作符
MySQL8.0增加了JSON操作符column ->> path,等价于:
JSON _ UNQUOTE(COLUMN -> PATH)
JSON _ UNQUOTE(JSON _ EXTRACT(column,path))
示例:使用通过用表达式定义一个文档
with doc(data) as
->(select json _ object('id','3','name','Barney'))
->select json _ unguote(data ->'$.name')from doc;
还有一种方式也是之前版本所支持的。
with doc(data) as
->(select json _ object('id','3','name','Barney'))
->select json _ unguote(json _ extract(data,'$.name'))from doc;
再看一下在8.0中的最新的写法
with doc(data) as (select json _ object('id','3','name','Barney'))select data ->> '$.name' from doc;
这三个方式获取的结果是一样的,只不过是他们的写法不同,那么最新的8.0使用的内联路径运算符相对来说更加简单,那同时对于路径运算符我们还需要有一个注意的地方那就是MySQL8.0它还扩展了我们这个路径表达式的一个语法,可以支持范围操作。
示例:
定义一个数组,下标为1的字符
select json _ extract('["a","b","c","d","e"]','$[1]');
在新版本中,支持范围,获取下标从1到3,3个元素
select json _ extract('["a","b","c","d","e"]','$[1 to 3]');
除了使用数字,还可以使用一些预定好的,比如lest,lest表示最后一位。
select json _ extract('["a","b","c","d","e"]','$[last -2 to last ]');
网友评论