MYSQL 处理json格式数据

668 阅读1分钟

最近有个需求, 需要更新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类型数据