# JSON_SET

添加或更新JSON中指定位置的值并返回新的对象。

指定路径存在值时更新值,不存在时插入新的值,如果传入的值为null,那么将在JSON中保留null值,如果希望传递null值时删除值,可以使用JSON_REMOVE函数。

此函数可运行于浏览器端、后端服务器端或SQL中,在SQL中此函数依赖数据库本身对JSON类型的支持能力,虽然大部分数据库都支持JSON数据类型,但可能部分数据库支持的不完善,因此会不支持此函数或只支持部分能力。在更新字段值时(如程序流的更新数据交互中)用户无需直接使用此函数更新字段,由于模型层已经明确定义了JSON字段的内部结构,用户只需要设置需要更新的JSON内部的部分KEY对应的值即可,系统内部会自动使用数据库底层的JSON字段增量更新能力只更新JSON中需要更新的值。

# 语法

JSON_SET(json, path1, value1,..., pathN, valueN)

  • json:必需,JSON对象或数组,或其字符串形式。
  • path:必需,指定路径,可以是数组索引下标、JSON的KEY或者是JSON_PATH语法表示的路径。
  • value:必需,需要设置的值,可以传递多个path与value的参数对,实现同时更新多个值。

# 示例

  1. JSON_SET('{"key1": 123, "key2": 456}', 'key3', 789) 返回JSON{"key1": 123, "key2": 456, "key3": 789}
  2. JSON_SET(JSON_OBJECT("key1", 123, "key2", 456), 'key2', 1) 返回JSON{"key1": 123, "key2": 1}
是否有帮助?
0条评论
评论