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