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

このページは AI の支援を受けて英語から翻訳されています。内容が異なる場合は英語版が正となります。

JSON_INSERT

既存の値を上書きせずに、JSON ドキュメントの指定したパスに新しい値を挿入します。

関連項目:
[SELECT] [JSON_EXTRACT] [JSON_SET] [JSON_REPLACE]


構文​

SELECT JSON_INSERT(json_column, path, new_value) FROM <multipartIdentifier>;

引数​

json_column
変更する JSON 列または式。

path
新しい値を挿入する位置を示す JSON パス式。パスがすでに存在する場合、そのパスにある元の値は置き換えられません。

new_value
JSON ドキュメントの指定したパスに挿入する値。

戻り値​

指定したパスがまだ存在しない場合は、新しい値を挿入した JSON ドキュメントを返します。存在する場合は、JSON ドキュメントを変更せずに返します。

キーが存在する場合の動作
関数すでに存在する場合に上書き存在しない場合に作成
json_insert()いいえはい
json_replace()はいいいえ
json_set()はいはい

例​

JSON オブジェクトに新しいキーと値のペアを挿入する​

-- Example: Insert a new 'region' key with the value 'Europe' into a JSON object
SELECT JSON_INSERT(json_data, '$.region', 'Europe') as updated_object;

/* expected output...
|-------------------------------------------------------------|
| updated_json |
|-------------------------------------------------------------|
| {"name":"ResourceOne", "type":"Storage", "region":"Europe"} |
|-------------------------------------------------------------|
*/

このクエリは、'region' キーがまだ存在しない場合に、値が 'Europe' の 'region' という新しいキーを JSON ドキュメントに挿入します。'region' がすでにドキュメント内のキーである場合は、元のドキュメントが変更されずに返されます。