很多时候,我们需要在sql里面直接解析json字符串。这里针对mysql5.7版本的分水岭进行区分。
查看MySQL版本:
SELECT VERSION();
对于mysql5.7以上版本
使用mysql的内置函数JSON_EXTRACT(column, '$.key'),这个函数有两个参数,第一个参数column代表json列的列名;第二个参数key代表json字符串中的某一个key。
SELECT JSON_EXTRACT('{"name":"张三","age":"18"}', '$.name') AS '姓名';
输出结果:"张三"
从上述结果来看,获取的输出结果处多了引号,因此需要考虑引入JSON_UNQUOTE函数 ,该函数的作用是去除获取内容外面的引号(" ")
SELECT JSON_UNQUOTE(JSON_EXTRACT('{"name":"张三","age":"18"}', '$.name')) AS '姓名';
输出结果:张三
上述为常规的json字符串形式,如果某一个列里面存储的是一个jsonArray,此时该怎么办了?接着往下面看:
实例: