更新 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 將不會轉義此值。