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
。