Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL menggabungkan semua kolom

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 .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menyimpan beberapa opsi dalam satu tabel?

  2. Bagaimana cara mengatasi nama kolom yang ambigu saat mengambil hasil?

  3. Bagaimana cara menjalankan perintah MySQL dari skrip shell?

  4. Bagaimana cara menggabungkan seluruh set hasil di MySQL?

  5. spring jpa application.properties useSSL