将新值附加到 JSON 数组中

JSON_MODIFY 函数可用于将新值附加到 JSON 中的某些数组:

update Product
set Data = JSON_MODIFY(Data, 'append $.tags', "sales")
where ProductID = 17;

新值将附加在数组的末尾,或者将创建一个值为[sales]的新数组。JSON_MODIFY 函数将新值视为字符串(转义特殊字符,用双引号将其包装以创建正确的 JSON 字符串)。如果你的新值是 JSON 片段,则应使用 JSON_QUERY 函数包装它:

update Product
set Data = JSON_MODIFY(Data, 'append $.tags', JSON_QUERY('{"type":"new"}'))
where ProductID = 17;

没有第二个参数的 JSON_QUERY 函数表现得像“强制转换为 JSON”。由于 JSON_QUERY 的结果是有效的 JSON 片段(对象或数组),因此在修改输入 JSON 时 JSON_MODIFY 将不会转义此值。