Rumah >pangkalan data >tutorial mysql >IN vs. ANY dalam PostgreSQL: Apakah Perbezaan Utama dan Bilakah Saya Perlu Menggunakan Setiap?
Memahami IN dan SEBARANG struktur
Dalam PostgreSQL, IN dan ANY adalah kedua-dua binaan yang melakukan perbandingan set untuk menentukan sama ada nilai wujud dalam set.
Persamaan logik
Secara logiknya, IN adalah bersamaan dengan = ANY. Walau bagaimanapun, sintaks dan fungsinya berbeza.
Variasi Tatabahasa
IN dan ANY masing-masing mempunyai dua varian sintaks:
Perbezaan fungsi
KELEBIHAN MANA-MANA
SEBARANG menawarkan fleksibiliti yang lebih besar kerana ia boleh digabungkan dengan pelbagai pengendali, termasuk =. Contohnya:
<code class="language-sql">SELECT 'foo' LIKE ANY('{FOO,bar,%oo%}');</code>
Skala dan Prestasi
Untuk sejumlah besar nilai, menggunakan set untuk kedua-dua IN dan ANY boleh meningkatkan prestasi.
Terbalikkan dan Kecualikan
Untuk mencari baris yang nilainya tidak dalam tatasusunan yang diberikan:
<code class="language-sql">SELECT * FROM tbl WHERE id <> ALL (ARRAY[1, 2]);</code>
Semua ungkapan dalam blok kod di atas adalah setara dan akan mengecualikan baris dengan nilai id 1 dan 2.
Pemasukan nilai NULL
Secara lalai, baris dengan id NULL akan dikecualikan. Untuk memasukkannya, gunakan ungkapan berikut:
<code class="language-sql">SELECT * FROM tbl WHERE (id = ANY ('{1, 2}')) IS NOT TRUE;</code>
Atas ialah kandungan terperinci IN vs. ANY dalam PostgreSQL: Apakah Perbezaan Utama dan Bilakah Saya Perlu Menggunakan Setiap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!