更新 JSON 列中的值
JSON_MODIFY 函数可用于更新某些路径上的值。你可以使用此函数在 UPDATE 语句中修改 JSON 单元格的原始值:
update Product
set Data = JSON_MODIFY(Data, '$.Price', 24.99)
where ProductID = 17;
JSON_MODIFY 函数将更新或创建 Price 键(如果它不存在)。如果新值为 NULL,则将删除该键。JSON_MODIFY 函数将新值视为字符串(转义特殊字符,用双引号将其包装以创建正确的 JSON 字符串)。如果你的新值是 JSON 片段,则应使用 JSON_QUERY 函数包装它:
update Product
set Data = JSON_MODIFY(Data, '$.tags', JSON_QUERY('["promo","new"]'))
where ProductID = 17;
没有第二个参数的 JSON_QUERY 函数表现得像“强制转换为 JSON”。由于 JSON_QUERY 的结果是有效的 JSON 片段(对象或数组),因此在修改输入 JSON 时 JSON_MODIFY 将不会转义此值。