原始查詢問題:
判斷特定值是否在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中文網其他相關文章!