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

DDD
Lepaskan: 2024-11-20 15:40:12
asal
801 orang telah melayarinya

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"
Salin selepas log masuk

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"
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan