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 MISSINGCREATE ON MISSING

  • NULL ON NULL (デフォルト)、IGNORE ON NULLERROR ON NULLREMOVE ON NULL

  • NULL ON EMPTY (デフォルト)、IGNORE ON EMPTYERROR ON EMPTY

  • ERROR ON ERROR (デフォルト)、IGNORE ON ERROR