Apabila berurusan dengan pertanyaan MySQL yang melibatkan berbilang nilai dalam keadaan LIKE, satu cabaran biasa ialah memadankan baris yang mengandungi mana-mana nilai yang ditentukan. Dalam kes khusus ini, pertanyaan cuba mencari rekod di mana medan minat mengandungi sama ada 'sukan' atau 'pub' atau kedua-duanya. Walau bagaimanapun, pertanyaan yang diberikan gagal menghasilkan keputusan yang diharapkan.
Untuk menangani isu ini, terdapat beberapa penyelesaian alternatif:
1. Menggunakan Operator OR:
Operator OR boleh digunakan untuk menyambungkan berbilang keadaan LIKE:
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
2. Menggunakan Operator REGEXP:
Pengendali REGEXP menyediakan cara yang lebih ringkas dan cekap untuk memadankan berbilang nilai:
WHERE interests REGEXP 'sports|pub'
Dalam kes ini, REGEXP akan memadankan baris yang mengandungi sama ada 'sukan ' atau 'pub' dalam medan minat.
3. Menggunakan Operator IN:
Pilihan lain ialah menggunakan operator IN untuk menyemak berbilang nilai dalam set:
WHERE interests IN ('sports', 'pub')
REGEXP operator menggunakan corak ungkapan biasa untuk memadankan nilai yang ditentukan. Dalam kes ini, corak 'sukan|pub' sepadan dengan mana-mana rentetan yang mengandungi sama ada 'sukan' atau 'pub'.
The '|' simbol dalam ungkapan biasa mewakili OR logik, menunjukkan bahawa corak sepadan jika salah satu daripada dua nilai hadir dalam rentetan input.
Menggunakan operator OR, operator REGEXP, atau Operator IN dalam kombinasi dengan keadaan LIKE memberikan lebih fleksibiliti dan kecekapan apabila memadankan berbilang nilai dalam pertanyaan MySQL.
Atas ialah kandungan terperinci Bagaimana untuk Memadankan Pelbagai Nilai dengan cekap menggunakan LIKE dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!