メインコンテンツまでスキップ
翻訳ページ

このページは 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 を柔軟かつ動的に更新できます。データ構造を条件付きで変更する必要があるアプリケーションで特に役立ちます。