Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melaksanakan Carian Berbilang Rentetan dengan Cekap dalam MySQL?
Gunakan fungsi MySQL find_in_set() untuk carian berbilang rentetan
Fungsi find_in_set() MySQL hanya boleh mencari satu rentetan pada satu masa. Walau bagaimanapun, dalam aplikasi praktikal, selalunya perlu mencari berbilang rentetan pada masa yang sama.
Contohnya:
<code class="language-sql">find_in_set('a', 'a,b,c,d')</code>
Di sini, 'a' ialah satu-satunya rentetan carian. Jika anda ingin mencari berbilang rentetan, seperti 'a,b,c', anda boleh menggunakan kaedah berikut:
<code class="language-sql">find_in_set('a', 'a,b,c,d') OR find_in_set('b', 'a,b,c,d') OR find_in_set('c', 'a,b,c,d')</code>
Kaedah ini menggunakan operator OR untuk menggabungkan berbilang panggilan find_in_set(). Walau bagaimanapun, penyelesaian yang lebih cekap wujud:
<code class="language-sql">WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"</code>
Kaedah ini menambah koma pada permulaan dan penghujung medan 'setcolumn' untuk padanan corak ungkapan biasa. Antaranya:
Helah ini secara berkesan mencari baris yang 'setcolumn'nya mengandungi semua rentetan yang ditentukan, memberikan alternatif yang lebih fleksibel dan cekap kepada berbilang panggilan find_in_set().
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Carian Berbilang Rentetan dengan Cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!