Menggabungkan LIKE dan IN untuk Padanan Corak Fleksibel dalam Pelayan SQL
Pertanyaan SQL Server boleh memanfaatkan kuasa kedua-dua LIKE
dan IN
untuk padanan corak dan set perbandingan yang canggih. Walau bagaimanapun, menggabungkannya secara langsung tidak sah dari segi sintaksis. Penyelesaiannya terletak pada penggunaan operator OR
secara strategik.
Katakan anda ingin mencari baris yang lajur sepadan dengan beberapa corak. Daripada mencuba gabungan LIKE
dan IN
langsung, gunakan berbilang syarat LIKE
yang disertai oleh OR
:
<code class="language-sql">SELECT * FROM your_table WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%';</code>
Pertanyaan ini berkesan mencari baris di mana column
bermula dengan "Teks", "Hello", atau "Itu". Ia akan mengembalikan baris yang mengandungi:
Pendekatan ini mencerminkan kefungsian IN
(yang menjalankan semakan kesaksamaan), tetapi menyesuaikannya untuk padanan corak dengan LIKE
. Ambil perhatian bahawa IN
langsung dengan corak kad bebas (IN ('Text%', 'Hello%', 'That%')
) ialah sintaks SQL yang salah.
Untuk kecekapan yang lebih baik, pertimbangkan untuk menyatukan berbilang LIKE
keadaan menjadi satu pernyataan LIKE
menggunakan operator |
(ATAU) dalam corak:
<code class="language-sql">SELECT * FROM your_table WHERE column LIKE '%Text%|%Hello%|%That%';</code>
Pertanyaan yang dioptimumkan ini mencapai hasil yang sama dengan pelan pelaksanaan yang lebih ringkas dan berkemungkinan lebih pantas. Ingat untuk melarikan diri daripada sebarang aksara khas dalam corak carian anda jika perlu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Fungsi LIKE dan IN dalam Pelayan SQL untuk Padanan Corak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!