元のクエリの質問:
PostgreSQL 配列に特定の値が存在するかどうかを判断することは、一般的なクエリ要件です。ただし、直接的な解決策を見つけるには、多くの場合、課題が生じます。
既存のメソッド:
推奨される方法の 1 つは、
を使用することです。<code class="language-sql">select '{1,2,3}'::int[] @> (ARRAY[]::int[] || value_variable::int)</code>
別の簡略化されたバージョンは次のとおりです:
<code class="language-sql">select '{1,2,3}'::int[] @> ARRAY[value_variable::int]</code>
任意の最適化ソリューションを使用します:
より簡単な方法は、ANY 演算子を使用することです:
<code class="language-sql">SELECT value_variable = ANY ('{1,2,3}'::int[])</code>
ANY の利点:
ANY の右側のオペランドはセットと配列の両方を処理できるため、汎用性が高くなります。さらに、配列演算子用の GIN または GiST インデックス作成と、要素比較用の B ツリー インデックス作成をサポートします。
注:
以上がPostgreSQL 配列内の要素の存在を効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。