1. 程式人生 > 實用技巧 >mysql json_extract函式獲取json欄位中某個key的值

mysql json_extract函式獲取json欄位中某個key的值

參考:https://www.cnblogs.com/chuanzhang053/p/9139624.html 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)