メインコンテンツまでスキップ
バージョン: 4.x

JSON_REPLACE

説明

JSON_REPLACE関数は、JSON内のデータを更新し、結果を返すために使用されます。

構文

JSON_REPLACE (<json_str>, <path>, <val>[, <jsonPath>, <val>, ...])

パラメータ

パラメータ説明
<json_str>置換対象のJSONデータ。NULLを含む任意の型の要素を持つJSONオブジェクトが可能です。要素が指定されていない場合は、空の配列が返されます。json_strが有効なJSONでない場合は、エラーが返されます。
<path>置換対象のJSONパス。
<val>JSON_PATH Keyに対応する値を置換する値。NULLの場合、対応する位置にNULL値が挿入されます。

戻り値

json_replace関数はJSON内のデータを更新し、結果を返します。json_strまたはpathがNULLの場合はNULLを返します。それ以外の場合、json_str引数が有効なJSONでないか、パス引数が有効なパス式でないか、*ワイルドカードを含む場合はエラーが発生します。

パス-値のペアは左から右に評価されます。

json内の既存のパスに対するパス-値ペアは、既存のjson値を新しい値で上書きします。

それ以外の場合、json内の存在しないパスに対するパス-値ペアは無視され、効果はありません。

select json_replace(null, null, null);
+----------------------------------+
| json_replace(NULL, NULL, 'NULL') |
+----------------------------------+
| NULL |
+----------------------------------+
select json_replace('{"k": 1}', "$.k", 2);
+----------------------------------------+
| json_replace('{\"k\": 1}', '$.k', '2') |
+----------------------------------------+
| {"k":2} |
+----------------------------------------+
select json_replace('{"k": 1}', "$.j", 2);
+----------------------------------------+
| json_replace('{\"k\": 1}', '$.j', '2') |
+----------------------------------------+
| {"k":1} |
+----------------------------------------+
select json_replace(null, null, 's');
+--------------------------------------+
| json_replace(NULL, NULL, 's', '006') |
+--------------------------------------+
| NULL |
+--------------------------------------+