13.20 JSON_TRANSFORMの演算子UNION
JSON_TRANSFORM
の演算子UNION
は、指定された一連の値から、欠落している配列要素を追加します。これは和集合操作です。
これは、その操作のRHS (右辺)で指定されている値を、LHS (左辺)のパス式で対象となっている配列に追加します(それらがその配列内のどこかにすでに存在する場合を除く)。つまり、これはその配列を集合として扱い、要素が重複しないようにします。この操作は、RHSパス式で一致する複数の値のシーケンスを受け入れることができます。
例13-41 JSON_TRANSFORM: 集合としての配列2つの和集合
結果であるオブジェクト内の配列a
は、入力配列$.a
と$.b
の和集合です。結果であるオブジェクト内の配列b
は変更されていません。
SELECT json_transform('{"a":[ 1, 2, 3 ], "b":[ 2, 5, 3, 4 ]}',
UNION '$.a' = PATH '$.b')
結果:
{"a":[ 1,2,3,5,4 ], "b":[ 2,5,3,4 ]}
ノート: これは集合操作であるため、操作後のすべての配列要素の順序は定義されていません。
演算子UNION
で使用できるハンドラは次のとおりです:
-
ERROR ON MISSING
(デフォルト)、IGNORE ON MISSING
、CREATE ON MISSING
、NULL ON MISSING
。 -
ERROR ON MISMATCH
(デフォルト)。 -
NULL ON NULL
(デフォルト)、IGNORE ON NULL
、ERROR ON NULL