1. ホーム
  2. sql

[解決済み】Postgresの配列に値が存在するかどうかを確認する

2022-04-02 18:19:42

質問

Postgres 9.0を使用して、指定された配列に値が存在するかどうかをテストする方法が必要です。今のところ、私はこのようなものを思いつきました。

select '{1,2,3}'::int[] @> (ARRAY[]::int[] || value_variable::int)

しかし、もっとシンプルな方法があるはずだと思い続けているのですが、それが見つかりません。この方がよさそうです。

select '{1,2,3}'::int[] @> ARRAY[value_variable::int]

これで十分だと思います。しかし、もし他の方法があれば、ぜひ教えてください。

どのように解決するのですか?

を使えばよりシンプルになります。 ANY を構成します。

SELECT value_variable = ANY ('{1,2,3}'::int[])

の右オペランドは ANY (括弧の間)には、以下のどちらかを指定します。 セット (例えばサブクエリの結果) または 配列 . 使い方はいくつかあります。

重要 の差分です。 配列演算子( <@ , @> , && など) 期待する 配列 をオペランドとして使用し GIN または GiST インデックスをサポートする は、PostgreSQL の標準配布物では ANY の構文では 要素 型を左オペランドとし、これらのインデックスをサポートしない。例

このいずれも NULL 要素を使用します。をテストするには NULL :