13.11 JSON_TRANSFORMの演算子MINUS

JSON_TRANSFORMの演算子MINUSは、指定された一連の値にある配列要素を削除します。これは差集合操作です。

これは、RHSで指定されている値のどれかと等しい、LHSのパス式で対象となっている配列の要素をすべて削除します。このRHSのパス式で一致するのは、単一の値でも複数の値でもかまいません。

ノート: これは集合操作です。操作後のすべての配列要素の順序は定義されていません

例13-20 JSON_TRANSFORM: 集合としての配列2つの差集合

結果であるオブジェクト内の配列aは、入力配列$.a$.bの差集合です。

結果となるオブジェクト内の配列bは変更されていません。

SELECT json_transform('{"a":[ 1, 2, 3, 4 ], "b":[ 2, 5 ]}',
                      MINUS '$.a' = PATH '$.b[*]')

結果:

{"a":[ 1, 4, 3 ], "b":[ 2, 5 ]}

演算子MINUSで使用できるハンドラは次のとおりです:

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

  • ERROR ON MISMATCH (デフォルト)。

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