Rumah >pangkalan data >tutorial mysql >Cara Menggabungkan dan Membandingkan Rentetan Menggunakan MySQL SELECT dengan CONCAT: Mengelakkan Ralat 'Lajur Tidak Diketahui'?

Cara Menggabungkan dan Membandingkan Rentetan Menggunakan MySQL SELECT dengan CONCAT: Mengelakkan Ralat 'Lajur Tidak Diketahui'?

DDD
DDDasal
2024-11-20 15:40:12874semak imbas

How to Concatenate and Compare Strings Using MySQL SELECT with CONCAT: Avoiding the “Unknown Column” Error?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn