Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mencari Berbilang Rentetan dengan Cekap dalam Senarai Dipisahkan Koma dalam MySQL?
MySQL: Mengoptimumkan Carian Berbilang Rentetan dalam Senarai Dipisahkan Koma
FungsiMySQL find_in_set
menawarkan pendekatan mudah untuk mencari rentetan tunggal dalam senarai yang dipisahkan koma. Walau bagaimanapun, mencari berbilang rentetan secara serentak menggunakan find_in_set
memberikan had yang ketara. Artikel ini meneroka batasan ini dan memperkenalkan alternatif unggul menggunakan ungkapan biasa.
find_in_set
Kekurangan
Had teras find_in_set
ialah ketidakupayaannya untuk mengendalikan berbilang rentetan carian dalam satu pertanyaan. Sekatan ini menjadi bermasalah apabila berurusan dengan set data yang besar atau banyak istilah carian.
Pendekatan Lebih Cekap: Memanfaatkan Ungkapan Biasa
Cadangan untuk merantai berbilang panggilan find_in_set
menggunakan operator OR adalah tidak cekap dan cepat menjadi sukar digunakan. Penyelesaian yang jauh lebih berskala dan cekap melibatkan keupayaan ekspresi biasa MySQL. Pertanyaan berikut menunjukkan ini:
<code class="language-sql">WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"</code>
Di sini, setcolumn
merujuk kepada lajur yang mengandungi senarai dipisahkan koma anda dan val1
, val2
dan val3
ialah rentetan yang anda cari. Operator REGEXP
menyemak sama ada rentetan bercantum (termasuk koma di hadapan dan di belakang) sepadan dengan corak ungkapan biasa. Corak ini mencari mana-mana nilai yang ditentukan, dipisahkan dengan koma.
Faedah Kaedah Regexp
Pendekatan ungkapan biasa menawarkan beberapa kelebihan utama:
find_in_set
, terutamanya dengan semakin banyak istilah carian.Penyelesaian berasaskan regexp ini menyediakan kaedah yang lebih mantap dan cekap untuk carian berbilang rentetan dalam senarai yang dipisahkan koma dalam MySQL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Berbilang Rentetan dengan Cekap dalam Senarai Dipisahkan Koma dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!