Soalan pertanyaan asal:
Menentukan sama ada nilai tertentu wujud dalam tatasusunan PostgreSQL ialah keperluan pertanyaan biasa. Walau bagaimanapun, mencari penyelesaian yang mudah selalunya memberikan cabaran.
Kaedah sedia ada:
Satu cara yang dicadangkan ialah menggunakan:
<code class="language-sql">select '{1,2,3}'::int[] @> (ARRAY[]::int[] || value_variable::int)</code>
Satu lagi versi ringkas ialah:
<code class="language-sql">select '{1,2,3}'::int[] @> ARRAY[value_variable::int]</code>
Gunakan SEBARANG penyelesaian pengoptimuman:
Cara yang lebih mudah ialah menggunakan operator SEBARANG:
<code class="language-sql">SELECT value_variable = ANY ('{1,2,3}'::int[])</code>
KELEBIHAN MANA-MANA:
Operan kananSEBARANG boleh mengendalikan kedua-dua set dan tatasusunan, menjadikannya sangat serba boleh. Selain itu, ia menyokong pengindeksan GIN atau GiST untuk operator tatasusunan, dan pengindeksan B-tree untuk perbandingan elemen.
Nota:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak Kewujudan Elemen dengan Cekap dalam Array PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!