LIKE dan Berbilang Corak Kad Liar MySQL
Masalah:
Bolehkah MySQL mengendalikan carian LIKE
dengan cekap yang merangkumi beberapa corak kad bebas? Contohnya, mencari rentetan yang mengandungi ' 40%', ' 38%' dan ' 40%' secara serentak.
Penyelesaian:
MySQL tidak menawarkan fungsi LIKE IN()
langsung. Walau bagaimanapun, penyelesaian yang sangat berkesan menggunakan Ungkapan Biasa (REGEXP). Ini membolehkan padanan berbilang corak dalam satu pertanyaan:
SELECT * FROM fiberbox WHERE field REGEXP '1740|1938|1940';
Pertanyaan ini mengimbas lajur fiberbox
jadual field
untuk baris yang mengandungi mana-mana corak yang ditentukan. Simbol |
(paip) bertindak sebagai pengendali "atau", memadankan mana-mana baris yang mempunyai sekurang-kurangnya satu corak.
Pertimbangan Prestasi:
Prestasi relatif REGEXP
berbanding berbilang LIKE
pernyataan (mis., WHERE field LIKE '40%' OR field LIKE '38%' OR field LIKE '40%'
) sangat bergantung pada data dan pertanyaan tertentu. Adalah penting untuk menanda aras kedua-dua kaedah untuk menentukan pendekatan yang paling berkesan untuk set data dan keperluan pertanyaan anda.
Atas ialah kandungan terperinci Bolehkah MySQL Melakukan Carian LIKE dengan Corak Kad Liar Berbilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!