Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menggabungkan lajur MySQL tanpa menyenaraikan semua lajur?
Cara Menggabungkan Lajur MySQL Dengan Berkesan
Menggabungkan semua lajur dalam MySQL menggunakan kata kunci * tidak boleh dilaksanakan. Sebaliknya, anda perlu menyenaraikan semua lajur yang anda ingin gabungkan secara eksplisit.
Penggabungan Lajur Eksplisit
Untuk mencapai ini, gunakan fungsi CONCAT:
SELECT CONCAT(col1, col2, col3, ....) FROM yourtable
Sebagai alternatif, anda boleh menggunakan CONCAT_WS untuk meninggalkan nilai nol:
SELECT CONCAT_WS(',', col1, col2, col3, ....) FROM yourtable
Penggabungan Lajur Dinamik
Jika spesifikasi lajur manual menyusahkan, pertimbangkan untuk menggunakan pertanyaan dinamik untuk mendapatkan semua nama lajur:
SELECT `column_name` FROM `information_schema`.`columns` WHERE `table_schema`=DATABASE() AND `table_name`='yourtable'
Gabungkan hasil ini dengan GROUP_CONCAT untuk menjana senarai nama lajur yang dipetik yang dipisahkan koma:
GROUP_CONCAT(CONCAT('`', column_name, '`'))
Pertanyaan Dinamik Lengkap
Dengan elemen ini, anda boleh membina pertanyaan dinamik:
SELECT CONCAT( 'SELECT CONCAT_WS(\'\',', GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name), ') AS all_columns FROM yourtable;') FROM `information_schema`.`columns` WHERE `table_schema`=DATABASE() AND `table_name`='yourtable' INTO @sql;
Pertanyaan ini menjana rentetan serupa dengan:
SELECT CONCAT_WS('', col1, col2, col3, ....) AS all_columns FROM yourtable
Laksanakan rentetan ini menggunakan:
PREPARE stmt FROM @sql; EXECUTE stmt;
Pendekatan ini menghapuskan keperluan untuk penyenaraian lajur manual, memastikan penggabungan dinamik dan berskala.
Atas ialah kandungan terperinci Bagaimana untuk menggabungkan lajur MySQL tanpa menyenaraikan semua lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!