説明
この関数は、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