翻译页面
本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。
JSON_INSERT
在 JSON 文档的指定路径处插入新值,不覆盖现有值。
另请参阅:
[SELECT] [JSON_EXTRACT] [JSON_SET] [JSON_REPLACE]
语法
SELECT JSON_INSERT(json_column, path, new_value) FROM <multipartIdentifier>;
参数
json_column
要修改的 JSON 列或表达式。
path
要插入新值的 JSON 路径表达式。如果该路径已存在,则不会替换该路径处的原始值。
new_value
要在 JSON 文档的指定路径处插入的值。
返回值
如果指定路径尚不存在,则返回插入了新值的 JSON 文档;否则原样返回 JSON 文档。
键已存在时的行为
| 函数 | 已存在时是否覆盖? | 不存在时是否创建? |
|---|---|---|
json_insert() | 否 | 是 |
json_replace() | 是 | 否 |
json_set() | 是 | 是 |
示例
向 JSON 对象插入新的键值对
-- Example: Insert a new 'region' key with the value 'Europe' into a JSON object
SELECT JSON_INSERT(json_data, '$.region', 'Europe') as updated_object;
/* expected output...
|-------------------------------------------------------------|
| updated_json |
|-------------------------------------------------------------|
| {"name":"ResourceOne", "type":"Storage", "region":"Europe"} |
|-------------------------------------------------------------|
*/
如果 'region' 键尚不存在,此查询会向 JSON 文档插入一个名为 'region'、值为 'Europe' 的新键。如果 'region' 已是文档中的键,则原样返回原始文档。