Menggunakan MySQL SELECT dengan CONCAT Condition
Apabila bekerja dengan jadual yang mengandungi medan nama pertama dan nama keluarga, tugas biasa adalah untuk menggabungkannya menjadi rentetan tunggal untuk tujuan perbandingan atau penapisan. Walau bagaimanapun, menghadapi ralat "lajur tidak diketahui" semasa menggunakan alias untuk rentetan bercantum boleh membingungkan.
Untuk mengatasinya, adalah penting untuk memahami bahawa alias hanya terpakai pada output pertanyaan, bukan dalam pertanyaan itu sendiri. Untuk menggabungkan dan membandingkan rentetan, anda mempunyai dua pilihan:
Mengulang Penggabungan:
SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"
Dengan mengulangi ungkapan penggabungan dalam klausa WHERE, anda memastikan bahawa anda sedang membandingkan nilai gabungan sebenar.
Menggunakan Subquery:
SELECT * FROM ( SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstLast FROM users ) base WHERE firstLast = "Bob Michael Jones"
Dengan membungkus pertanyaan dalam subquery, anda mencipta jadual sementara dengan alias ("asas" dalam contoh ini) yang menyertakan rentetan bercantum sebagai lajur. Anda kemudian boleh menapis jadual sementara ini menggunakan perbandingan yang diingini.
Atas ialah kandungan terperinci Cara Menggabungkan dan Membandingkan Rentetan Menggunakan MySQL SELECT dengan CONCAT: Mengelakkan Ralat 'Lajur Tidak Diketahui'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!