1. 程式人生 > >mysql json資料引號處理

mysql json資料引號處理

問題描述:新版本中引入的json資料檢索時獲取某欄位值時帶引號

場景: 檢視mysql版本: select version();

資料庫資料:tabel表中data 欄位中的資料

資料取出後格式化如下(假資料):

{     "address": {         "zip": "29730",         "city": "Rock Hill",         "state": "South Carolina",         "detail": "301 S Jones Ave,Rock Hill,SC 29730,US",         "street": "301 S Jones Ave",         "telnum": "7042221086",         "company": "CCTV VERA",         "country": "US",         "street2": "",         "firstName": "Francisco Vera"     } }

目標是取address中的detail資料,有兩種方法

一:

select data->'$.address.detail'  from tabel  ;

得到 "301 S Jones Ave,Rock Hill,SC 29730,US"

二:

select JSON_EXTRACT(data,'$.address.detail') from tabel;

得到 "301 S Jones Ave,Rock Hill,SC 29730,US"

問題:如上,無論哪種方法得到的資料都是帶有雙引號的,這時候的資料就不能正常做對比

可以使用 JSON_UNQUOTE函式將雙引號去除

select

JSON_UNQUOTE(JSON_EXTRACT(data,'$.address.detail')) from tabel;

select JSON_UNQUOTE(data->'$.address.detail')  from tabel  ;

都得到 301 S Jones Ave,Rock Hill,SC 29730,US

目標完成

注:此時獲取的資料用來做比較 有時候會出現型別不統一,使用 CAST(xx as CHAR) 將資料轉為字元型別進行處理