SQL LIKE
dan IN
: Bolehkah Mereka Digabungkan?
SQL LIKE
amat berharga untuk padanan corak dalam carian teks, tetapi apabila berurusan dengan set corak yang dipratentukan, pengendali IN
menawarkan kebolehbacaan dan fleksibiliti yang lebih baik. Walau bagaimanapun, gabungan langsung LIKE
dan IN
tidak disokong secara langsung dalam SQL standard.
Mengapa Tiada Gabungan Langsung?
Ketiadaan gabungan LIKE
dan IN
langsung berpunca daripada ketersediaan alternatif unggul: Carian Teks Penuh (FTS).
Carian Teks Penuh (FTS): Pendekatan yang Lebih Baik
Kedua-dua Oracle dan SQL Server menyediakan keupayaan FTS yang mantap, menggunakan kata kunci seperti CONTAINS
untuk mencari berbilang corak dengan cekap dalam satu pertanyaan. Ini secara berkesan menggantikan keperluan untuk menggabungkan LIKE
dan IN
.
Contoh menggunakan FTS:
Oracle:
<code class="language-sql">WHERE CONTAINS(t.something, 'bla OR foo OR batz', 1) > 0</code>
SQL Server:
<code class="language-sql">WHERE CONTAINS(t.something, '"bla*" OR "foo*" OR "batz*"')</code>
Pertimbangan Penting untuk FTS:
t.something
dalam contoh) untuk FTS berfungsi dengan betul.LIKE
keadaan dari segi kelajuan dan kecekapan.Oleh itu, sementara gabungan LIKE
dan IN
langsung tidak tersedia, FTS menyediakan penyelesaian yang lebih berkuasa dan cekap untuk mencari berbilang corak.
Atas ialah kandungan terperinci Bolehkah saya Menggabungkan Operator `LIKE` dan `IN` SQL Tanpa Subquery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!