13.17 JSON_TRANSFORMの演算子REPLACE
JSON_TRANSFORMの演算子REPLACEは、LHSのパス式で対象となっているデータを、RHSのSQL式の値に置換します。
(REPLACEには、IGNORE ON MISSING句を指定したSETと同じ効果があります。)
例13-32 JSON_TRANSFORM: JSON値の置換
このコードでは、フィールドaの値を値2に置き換えています。入力データにフィールドbがないため、2番目のREPLACE操作は無視されます(デフォルト・ハンドラがIGNORE ON MISSINGであるため)。
SELECT json_transform('{"a":1}',
REPLACE '$.a' = 2,
REPLACE '$.b' = 3);
結果:
{"a":2}
演算子REPLACEで使用できるハンドラは次のとおりです:
-
REPLACE ON EXISTING(デフォルト) -
IGNORE ON MISSING(デフォルト)、ERROR ON MISSING、CREATE ON MISSING -
NULL ON NULL(デフォルト)、IGNORE ON NULL、ERROR ON NULL、REMOVE ON NULL -
NULL ON EMPTY(デフォルト)、IGNORE ON EMPTY、ERROR ON EMPTY。 -
ERROR ON ERROR(デフォルト)、IGNORE ON ERROR。