翻訳ページ
このページは AI の支援を受けて英語から翻訳されています。内容が異なる場合は英語版が正となります。
JSON_PATCH
JSON ドキュメントに JSON MergePatch(RFC-7396)を適用し、指定した操作に従ってドキュメントを変更します。この関数は JSON オブジェクト内の要素の追加、変更、削除に使用しますが、JSON 配列は不可分の単位として扱います。
関連項目:
[SELECT] [JSON_EXTRACT]
構文
SELECT JSON_PATCH(target_json, patch_json) FROM <multipartIdentifier>;
引数
target_json
パッチを適用する JSON ドキュメント。
patch_json
MergePatch アルゴリズムに従って適用する変更を記述した JSON ドキュメント。
戻り値
パッチを適用した後の、変更された JSON ドキュメントを返します。
例
シンプルな MergePatch
-- Example: Simple merge of new elements into the target JSON object
SELECT JSON_PATCH('{"a":1,"b":2}', '{"c":3,"d":4}') AS patched_json;
出力:{"a":1,"b":2,"c":3,"d":4}
配列の要素を置き換える
-- Example: Replacing an array with a single value in the JSON object
SELECT JSON_PATCH('{"a":[1,2],"b":2}', '{"a":9}') AS patched_json;
出力:{"a":9,"b":2}
null を使用して要素を削除する
-- Example: Removing an element by setting it to null
SELECT JSON_PATCH('{"a":1,"b":2}', '{"a":9,"b":null,"c":8}') AS patched_json;
出力:{"a":9,"c":8}
ネストした MergePatch
-- Example: Nested merge patch updating sub-keys within a nested JSON object
SELECT JSON_PATCH('{"a":{"x":1,"y":2},"b":3}', '{"a":{"y":9},"c":8}') AS patched_json;
出力:{"a":{"x":1,"y":9},"b":3,"c":8}
この機能により、データベースに格納された JSON を柔軟かつ動的に更新できます。データ構造を条件付きで変更する必要があるアプリケーションで特に役立ちます。