原始查询问题:
判断特定值是否在PostgreSQL数组中存在是常见的查询需求。然而,寻找直接的解决方案却常常面临挑战。
现有方法:
一种建议的方法是使用:
<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的优化方案:
一种更简洁的方法是使用 ANY 运算符:
<code class="language-sql">SELECT value_variable = ANY ('{1,2,3}'::int[])</code>
ANY的优势:
ANY 的右操作数可以同时处理集合和数组,具有很强的通用性。此外,它支持用于数组运算符的GIN或GiST索引,以及用于元素比较的B树索引。
注意事项:
以上是如何有效地检查 PostgreSQL 数组中的元素是否存在?的详细内容。更多信息请关注PHP中文网其他相关文章!