mysql json_extract函式獲取json欄位中某個key的值
阿新 • • 發佈:2020-11-25
參考: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"}舉例2:',"$.tel") | +--------------------------------------------------------------+ | "13240133388" | +--------------------------------------------------------------+ 1 row in set (0.00 sec)
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)