Untuk menggabungkan semua kolom dalam tabel, Anda tidak dapat menggunakan *
kata kunci, tetapi Anda harus mencantumkan semua kolom secara eksplisit:
SELECT CONCAT(col1, col2, col3, ....)
FROM yourtable
atau Anda mungkin ingin menggunakan CONCAT_WS
yang akan melewatkan nilai nol:
SELECT CONCAT_WS(',', col1, col2, col3, ....)
FROM yourtable
Jika Anda tidak ingin menentukan semua nama kolom secara manual, Anda bisa menggunakan kueri dinamis. Kueri ini akan mengembalikan semua nama kolom tabel Anda:
SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema`=DATABASE()
AND `table_name`='yourtable';
dan menggunakan GROUP_CONCAT Anda dapat memperoleh daftar semua nama kolom:
GROUP_CONCAT(CONCAT('`', column_name, '`'))
dikutip, dalam format yang dipisahkan koma:
`col1`,`col2`,`col3`,`col4`,...
jadi sekarang kita memiliki semua elemen untuk membuat kueri kita secara dinamis:
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;
kueri ini akan menyetel string @sql menjadi seperti:
SELECT CONCAT_WS('', col1, col2, col3, ....) AS all_columns FROM yourtable
dan kode ini akan mengeksekusinya:
PREPARE stmt FROM @sql;
EXECUTE stmt;
Silakan lihat biola di sini .