Rumah > Artikel > pangkalan data > Bagaimana untuk Menggabungkan Semua Lajur dalam MySQL: Meneroka Pendekatan Alternatif?
Penggabungan Semua Lajur dalam MySQL: Pendekatan Alternatif
Dalam MySQL, penggabungan semua lajur menggunakan kata kunci * tidak boleh dilaksanakan. Untuk mendapatkan semula rentetan nilai yang digabungkan merentas semua lajur, senarai nama lajur yang jelas diperlukan.
Penyenaraian Lajur Eksplisit:
Pendekatan paling mudah ialah menggabungkan individu secara manual lajur:
SELECT CONCAT(col1, col2, col3, ....) FROM yourtable
Fungsi CONCAT_WS:
Fungsi CONCAT_WS boleh digunakan untuk menggabungkan lajur sambil melangkau nilai nol:
SELECT CONCAT_WS(',', col1, col2, col3, ....) FROM yourtable
Penjanaan Pertanyaan Dinamik:
Untuk mengelak daripada menentukan nama lajur secara manual, pertanyaan dinamik boleh dibuat:
SELECT `column_name` FROM `information_schema`.`columns` WHERE `table_schema`=DATABASE() AND `table_name`='yourtable';
Pertanyaan ini mendapatkan semula semua nama lajur dalam jadual. Menggunakan GROUP_CONCAT, nama ini boleh ditukar menjadi rentetan yang dipisahkan koma:
GROUP_CONCAT(CONCAT('`', column_name, '`'))
Akhir sekali, elemen ini boleh digabungkan untuk mencipta 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 menetapkan rentetan @sql kepada nama lajur yang digabungkan. Kod berikut melaksanakan pertanyaan ini:
PREPARE stmt FROM @sql; EXECUTE stmt;
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Semua Lajur dalam MySQL: Meneroka Pendekatan Alternatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!