Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL nối tất cả các cột

Để nối tất cả các cột trong một bảng, bạn không thể sử dụng * từ khóa, nhưng bạn cần liệt kê rõ ràng tất cả các cột:

SELECT CONCAT(col1, col2, col3, ....)
FROM yourtable

hoặc bạn có thể muốn sử dụng CONCAT_WS điều đó sẽ bỏ qua các giá trị null:

SELECT CONCAT_WS(',', col1, col2, col3, ....)
FROM yourtable

Nếu bạn không muốn chỉ định tất cả các tên cột theo cách thủ công, bạn có thể sử dụng truy vấn di động. Truy vấn này sẽ trả về tất cả các tên cột trong bảng của bạn:

SELECT `column_name` 
FROM   `information_schema`.`columns` 
WHERE  `table_schema`=DATABASE() 
       AND `table_name`='yourtable';

và sử dụng GROUP_CONCAT, bạn có thể nhận được danh sách tất cả các tên cột:

GROUP_CONCAT(CONCAT('`', column_name, '`'))

được trích dẫn, ở định dạng được phân tách bằng dấu phẩy:

`col1`,`col2`,`col3`,`col4`,...

vì vậy bây giờ chúng tôi có tất cả các yếu tố để tạo truy vấn của chúng tôi theo cách di động:

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;

truy vấn này sẽ đặt chuỗi @sql thành một cái gì đó như:

SELECT CONCAT_WS('', col1, col2, col3, ....) AS all_columns FROM yourtable

và mã này sẽ thực thi nó:

PREPARE stmt FROM @sql;
EXECUTE stmt;

Vui lòng xem fiddle tại đây .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiển thị các hàng từ MySQL trong đó ngày giờ trong vòng một giờ tới

  2. Nhanh chóng thêm bản sao của một cột vào bảng MySQL

  3. Tự động tải dữ liệu trên cuộn div bằng php, mysql, jquery và ajax

  4. thứ tự theo .... số? Giúp tôi sắp xếp địa chỉ ip

  5. mysql:select max (score) không trả về dữ liệu hàng có liên quan