Memadankan Berbilang Perkataan dalam Rekod MySQL Menggunakan LIKE atau REGEXP
Apabila menggunakan pengendali LIKE untuk mencari rekod yang mengandungi perkataan tertentu, anda mungkin menghadapi kesukaran jika perkataan muncul pada kedudukan yang berbeza di lapangan. Untuk menangani isu ini, pertimbangkan untuk menggunakan operator REGEXP.
Sebagai contoh, katakan anda mempunyai jadual bernama 'jadual' dengan medan dipanggil 'nama' yang mengandungi nilai 'Stylus Photo 2100.' Menggunakan operator LIKE, pertanyaan berikut:
SELECT `name` FROM `table` WHERE `name` LIKE '%Stylus 2100%'
tidak akan mengembalikan hasil. Ini kerana pengendali LIKE mencari padanan tepat rentetan yang ditentukan.
Untuk mencari rekod yang mengandungi perkataan 'Stylus' dan '2100' dalam sebarang susunan, anda boleh menggunakan operator REGEXP, seperti yang dilihat dalam ini pertanyaan:
SELECT `name` FROM `table` WHERE `name` REGEXP 'Stylus.+2100'
Pertanyaan ini akan menggunakan ungkapan biasa untuk mencari rekod di mana medan 'nama' mengandungi perkataan 'Stylus' diikuti dengan sebarang nombor daripada aksara (ditunjukkan oleh '.'), dan kemudian perkataan '2100.'
Sebagai alternatif, anda boleh menggunakan operator LIKE beberapa kali, seperti yang ditunjukkan dalam pertanyaan ini:
SELECT `name` FROM `table` WHERE `name` LIKE '%Stylus%' AND `name` LIKE '%2100%'
Pertanyaan ini akan mengembalikan rekod di mana medan 'nama' mengandungi perkataan 'Stylus' dan perkataan '2100', tanpa mengira kedudukannya.
Atas ialah kandungan terperinci Bagaimana untuk Memadankan Berbilang Perkataan dengan Cekap dalam Rekod MySQL Menggunakan LIKE atau REGEXP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!