Mysql8之獲取JSON欄位的值
- 2019 年 10 月 25 日
- 筆記
問題是這樣的,接到一個需求:
要從其它系統資料庫中導出一些數據,發現其中有個欄位的值是json字元串,而需求要的是該JSON字元串中某個key對應的value值。
需求有了,這個如果只用SQL來處理,能否實現呢,SQL能否處理JSON數據呢,這個資料庫是Mysql,看了下版本,發現是8.x,Mysql8中有json函數支援json的處理,so開工探索。
List-1
[ { ... "key": { "innerKey": "This is test" ... }, ... } ]
欄位的json如List-1所示,對應的用json_extract函數,json_extract(列名稱,'$[0].key.innerKey')這樣就取出innerKey的值了。要注意的是該欄位中不能含有非json字元串的值,不然json_extract會報錯。如下List-2是SQL例子。
List-2
select column1,column2,json_extract(,'$[0].key.innerKey') as column3 from table
Reference
(adsbygoogle = window.adsbygoogle || []).push({});