最近有个需求, 需要更新mysql里面里面存成json格式的数据.需要用SQL去更新json里面的某个字段.
我使用到的API:
- json_extract: 提前json里面的数据, 比如某一个字段或者json数组里面某个index里面的json对象
mysql> SELECT JSON_EXTRACT('{"id": 14, "name": "Aztalan"}', '$.name');
+---------------------------------------------------------+
| JSON_EXTRACT('{"id": 14, "name": "Aztalan"}', '$.name') |
+---------------------------------------------------------+
| "Aztalan" |
+---------------------------------------------------------+
- json_set: 设置json数据的值. 如果相同的位置已经存在值,则是更新; 否则是插入
mysql> SET @j = '["a", {"b": [true, false]}, [10, 20]]';
mysql> SELECT JSON_SET(@j, '$[1].b[0]', 1, '$[2][2]', 2);
+--------------------------------------------+
| JSON_SET(@j, '$[1].b[0]', 1, '$[2][2]', 2) |
+--------------------------------------------+
| ["a", {"b": [1, false]}, [10, 20, 2]] |
+--------------------------------------------+
想看更多mysql处理josn数据的方法:mysql处理json类型数据