説明
この関数は、JSONドキュメント内の既存の値を置き換えて結果を返します。
構文
JSON_REPLACE(json_doc, path, val[, path, val] ...)
説明
json_doc パラメータはJSONドキュメントを指定し、path はパスパラメータです。いずれかのパラメータが NULL の場合、NULL を返します。
次の場合にエラーが発生します:
json_docパラメータが有効なJSONドキュメントではありません。pathパラメータが有効なパス式ではありません。pathパラメータに * または ** ワイルドカードが含まれています。
パス値ペア(path-value)は、左から右への順序で評価されます。path-valueペアによって生成されたドキュメントは、次のペアを評価するための新しい値として使用されます。
ドキュメント内の既存のパスに対応するpath-valueペアは、既存のドキュメント値を新しい値で上書きします。ドキュメント内に存在しないパスに対応するpath-valueペアは無視され、無効となります。
例
obclient> SET @jn = '{ "a": 1, "b": [2, 3, 4]}';
Query OK, 0 rows affected
obclient> SELECT JSON_REPLACE(@jn, '$.a', 10, '$.c', '[true, false]');
+------------------------------------------------------+
| JSON_REPLACE(@jn, '$.a', 10, '$.c', '[true, false]') |
+------------------------------------------------------+
| {"a": 10, "b": [2, 3, 4]} |
+------------------------------------------------------+
1 row in set