mysql 查詢json中某個key數據
SELECT json_extract(json,"$.key") FROM table
上述查詢結果會帶引號 可以配合JSON_UNQUOTE 函數來去掉引號
SELECT JSON_UNQUOTE(json_extract(json,"$.key")) FROM table
這樣就會獲取到json中對應的key的值了,我在開發中遇到過,就算這麼寫,返回結果居然是個數組,我用的框架是jfinal,我不知道是不是它封裝返回值的問題,所以在配合CAST 函數
例:
SELECT CAST(JSON_UNQUOTE(json_extract(json,"$.key"))AS CHAR) FROM table
這樣返回的正確結果 將結果變成char類型 (大家如果有疑問可以看下cast函數)這裏只是告訴大家如何運用
AS:用於分隔兩個參數,在AS之前的是要處理的數據,在AS之後是要轉換的數據類型。
對於用sql修改json中某個值的語句
例:
update table set json=json_set(json,"$.key","改修的值") where ?=?(你的判斷條件)
首先找到json中的key 然後要修改的值 這裏值得注意的是如果你的json中沒有對應的key的話,他會把這個key追加到你的json中,如果有的話就是修改咯!
如果有解決你的問題點讚唄兒~