Meluaskan Skop Pengendali Suka MySQL
Pengendali Suka MySQL ialah alat yang berkuasa untuk memadankan corak dalam rentetan. Walau bagaimanapun, kadangkala ia boleh gagal apabila menangani kriteria pemadanan kompleks yang melibatkan berbilang nilai.
Pertimbangkan pertanyaan berikut, yang bertujuan untuk mendapatkan semula baris yang medan minat mengandungi sama ada sukan atau pub (atau kedua-duanya):
SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
Mengejutkan ramai, pertanyaan ini tidak menghasilkan hasil yang diingini. Sebabnya terletak pada cara pengendali Suka mengendalikan berbilang corak. Ia menggunakan setiap corak secara berurutan dan mengembalikan baris yang sepadan dengan kedua-dua corak. Dalam kes ini, pertanyaan berkesan menjadi:
SELECT * FROM table WHERE interests LIKE ('%sports%') AND interests LIKE ('%pub%')
Memandangkan tiada nilai medan minat mengandungi kedua-dua "sukan" dan "pub", pertanyaan itu mengembalikan set kosong.
Penyelesaian: Menerima Teknik Padanan Alternatif
Untuk menyelesaikan isu ini, kita perlu menggunakan pendekatan yang berbeza. Pilihan pertama ialah untuk memisahkan corak menggunakan operator logik:
SELECT * FROM table WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
Pertanyaan ini secara berkesan sepadan dengan baris yang mengandungi sama ada "sukan" atau "pub" dalam medan minat.
Lebih banyak lagi penyelesaian yang cekap ialah menggunakan operator REGEXP MySQL, yang membolehkan kami memadankan corak menggunakan ungkapan biasa:
SELECT * FROM table WHERE interests REGEXP 'sports|pub'
Pertanyaan ini menggunakan '|' simbol (paip) untuk menyatakan bahawa medan minat harus sepadan sama ada "sukan" atau "pub."
Dengan menggunakan teknik pemadanan alternatif ini, kami boleh melanjutkan fungsi pengendali Suka dan mendapatkan semula baris yang memenuhi kehendak kami. kriteria.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan MySQL dengan Cekap untuk Mencari Baris Memadankan Berbilang Nilai dalam Medan Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!