Menggabungkan LIKE
dan IN
dalam SQL: Alternatif kepada Gabungan Terus
SQL LIKE
memudahkan padanan corak, manakala IN
menyemak keahlian dalam satu set nilai. Walaupun gabungan langsung tidak tersedia, alternatif yang cekap wujud untuk mengendalikan berbilang LIKE
keadaan atau menggabungkan LIKE
dengan set nilai.
Cabaran Pelbagai LIKE
Syarat
Menggunakan berbilang OR
pernyataan dengan LIKE
menjadi sukar digunakan dan berpotensi tidak cekap untuk banyak corak:
<code class="language-sql">WHERE something LIKE 'bla%' OR something LIKE '%foo%' OR something LIKE 'batz%'</code>
Carian Teks Penuh: Penyelesaian Berkuasa
Untuk senario yang memerlukan berbilang LIKE
keadaan atau gabungan LIKE
dan satu set nilai, Carian Teks Penuh (FTS) menyediakan pendekatan yang unggul. Kedua-dua Oracle dan SQL Server menawarkan keupayaan FTS.
Pelaksanaan FTS Oracle
Oracle menggunakan kata kunci CONTAINS
dengan operator OR
untuk mencapai kesan yang diingini:
<code class="language-sql">WHERE CONTAINS(t.something, 'bla OR foo OR batz', 1) > 0</code>
Pelaksanaan FTS SQL Server
SQL Server juga menggunakan CONTAINS
, tetapi dengan sintaks yang sedikit berbeza untuk padanan corak:
<code class="language-sql">WHERE CONTAINS(t.something, '"bla*" OR "foo*" OR "batz*"')</code>
Nota Penting: Untuk prestasi FTS yang optimum, pastikan lajur yang berkaitan (t.something
dalam contoh ini) diindeks dengan betul menggunakan indeks teks penuh.
Bacaan Lanjut
Atas ialah kandungan terperinci Bolehkah SQL Menggabungkan Operator `LIKE` dan `IN`, dan jika tidak, Apakah Alternatifnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!