1.獲取Mysql中的json內容
SELECT SUM( a.`extraData` -> "$.commission" ) AS commission, a.`type`,a.`ID` FROMtable a WHERE a.`xxx` = 'YES' GROUP BY a.`type`;
即調用時為
SELECT column->"$.field" FROM table
2.更新json
UPDATE tableSET jsonData = JSON_SET(jsonData, "$.field1", "123") WHERE a = 1AND jsonData IS NOT NULL
JSON_SET提供同時更新多個的參數
JSON_SET(jsonData, "$.field1", "123","$.field2","xxx","$.field3","3434")
3.以json為條件
SELECT * FROM table WHERE jsonData->'$.field' = '123'
4.操作JSON內容
https://dev.mysql.com/doc/refman/5.7/en/json-modification-functions.html#function_json-array-insert
mysql> SET @j = '["a", ["b", "c"], "d"]'; mysql> SELECT JSON_ARRAY_APPEND(@j, '$[1]', 1); +----------------------------------+ | JSON_ARRAY_APPEND(@j, '$[1]', 1) | +----------------------------------+ | ["a", ["b", "c", 1], "d"] | +----------------------------------+ mysql> SELECT JSON_ARRAY_APPEND(@j, '$[0]', 2); +----------------------------------+ | JSON_ARRAY_APPEND(@j, '$[0]', 2) | +----------------------------------+ | [["a", 2], ["b", "c"], "d"] | +----------------------------------+ mysql> SELECT JSON_ARRAY_APPEND(@j, '$[1][0]', 3); +-------------------------------------+ | JSON_ARRAY_APPEND(@j, '$[1][0]', 3) | +-------------------------------------+ | ["a", [["b", 3], "c"], "d"] | +-------------------------------------+ mysql> SET @j = '{"a": 1, "b": [2, 3], "c": 4}'; mysql> SELECT JSON_ARRAY_APPEND(@j, '$.b', 'x'); +------------------------------------+ | JSON_ARRAY_APPEND(@j, '$.b', 'x') | +------------------------------------+ | {"a": 1, "b": [2, 3, "x"], "c": 4} | +------------------------------------+ mysql> SELECT JSON_ARRAY_APPEND(@j, '$.c', 'y'); +--------------------------------------+ | JSON_ARRAY_APPEND(@j, '$.c', 'y') | +--------------------------------------+ | {"a": 1, "b": [2, 3], "c": [4, "y"]} | +--------------------------------------+ mysql> SET @j = '{"a": 1}'; mysql> SELECT JSON_ARRAY_APPEND(@j, '$', 'z'); +---------------------------------+ | JSON_ARRAY_APPEND(@j, '$', 'z') | +---------------------------------+ | [{"a": 1}, "z"] | +---------------------------------+
JSON_ARRAY_INSERT
JSON_INSERT、JSON_REPLACE、JSON_SET分別代表,只增,只替換,增+替換