Menggabungkan Lajur dalam MySQL WHERE Klausa
Dalam jadual pangkalan data dengan lajur untuk nama pertama dan nama keluarga, melaksanakan pertanyaan carian dengan satu istilah carian boleh mencabar. Mencari setiap lajur secara berasingan menggunakan operator LIKE boleh menghasilkan hasil yang luas, terutamanya apabila istilah carian perkataan tunggal digunakan.
Untuk mengecilkan hasil carian, anda boleh menggunakan fungsi CONCAT() untuk menggabungkan yang pertama dan yang terakhir nama ke dalam satu rentetan. Rentetan ini kemudiannya boleh dibandingkan dengan istilah carian menggunakan operator LIKE. Walau bagaimanapun, contoh pertanyaan yang diberikan dalam soalan:
select * from table where first_name like '%$search_term%' or last_name like '%$search_term%' or concat_ws(' ',first_name,last_name) like '%$search_term%';
nampaknya tidak memberikan hasil yang diingini.
Versi pertanyaan yang dipermudahkan, seperti yang dicadangkan dalam jawapan:
select * from table where concat_ws(' ',first_name,last_name) like '%$search_term%';
harus mencapai matlamat mencari nama penuh dalam satu pertanyaan. Fungsi CONCAT() menggabungkan nama pertama dan nama akhir menjadi satu rentetan, yang kemudiannya dibandingkan dengan istilah carian menggunakan operator LIKE. Pendekatan ini harus memberikan hasil carian yang lebih tepat.
Untuk menyelesaikan masalah pertanyaan asal, memberikan contoh nama dan istilah carian yang tidak berfungsi seperti yang diharapkan akan membantu. Mungkin isunya terletak di tempat lain dalam pertanyaan atau data jadual.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Nama Penuh dengan Cekap dalam MySQL Menggunakan CONCAT()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!