mysql json_extract函数获取json字段中某个key的值

json_extract函数可以获取json对象中指定key的值,用法:json_extract(json_filed,"$.key")
举例1:
mysql> select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel");
+--------------------------------------------------------------+
| json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel") |
+--------------------------------------------------------------+
| "13240133388"                                                |
+--------------------------------------------------------------+
1 row in set (0.00 sec)
举例2:
mysql> select * from tab_json;
+----+----------------------------------------------------------------+
| id | data                                                           |
+----+----------------------------------------------------------------+
|  1 | {"Tel": "132223232444", "name": "david", "address": "Beijing"} |
|  2 | {"Tel": "13390989765", "name": "Mike", "address": "Guangzhou"} |
+----+----------------------------------------------------------------+
2 rows in set (0.00 sec)
 
mysql> select json_extract(data,'$.name') from tab_json;
+-----------------------------+
| json_extract(data,'$.name') |
+-----------------------------+
| "david" |
| "Mike" |
+-----------------------------+
2 rows in set (0.00 sec)

如果查询没有的key,那么是可以查询,不过返回的是NULL。

mysql> select json_extract(data,'$.name'),json_extract(data,'$.tel') from tab_json;
+-----------------------------+----------------------------+
| json_extract(data,'$.name') | json_extract(data,'$.tel') |
+-----------------------------+----------------------------+
| "david" | NULL |
| "Mike" | NULL |
+-----------------------------+----------------------------+
2 rows in set (0.00 sec)

原文地址:https://www.cnblogs.com/mianbaoshu/p/14036505.html