未嵌套的Json取值
假如现在有表TableA,其中一个字段叫info,字段内容如下:

{"name":"zhangsan","age":28,"class":1}
1
使用JSON_EXTRACT()函数取出name的话,写法如下:

select JSON_EXTRACT(info, '$.name') from TableA;
1
但取值有一个问题,就是取出来如果是字符串,字符串的两边会带有双引号。那么如何去掉双引号?
使用JSON_UNQUOT()写法如下:

select JSON_UNQUOTE(JSON_EXTRACT(info, '$.name')) from TableA;
1
嵌套的Json取值
有嵌套JSON的话,只需要加“.”即可,比如有一个字段info,内容如下:

{"name":"zhangsan","age":28,"class":1,"other":{"book":"钢铁是怎样练成","music":"我记得"}}
1
要取出其他信息中歌曲名的话,如下面这样写:

select JSON_UNQUOTE(JSON_EXTRACT(info, '$.other.music')) from TableA;
————————————————
版权声明:本文为CSDN博主「hnfangh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hnfangh/article/details/131535484