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

Chọn các giá trị hàng động làm tên cột, theo thứ tự cụ thể

Bạn có thể thực hiện việc này bằng cách thêm ORDER BY start_time ASC trong GROUP_CONCAT của bạn chức năng

SET @sql = NULL;

SELECT GROUP_CONCAT(DISTINCT
  CONCAT('MAX(CASE WHEN job_id = ''',
         job_id, 
         ''' THEN start_time END) `',
         job_id,
         '_start`',
         ',',
         'MAX(CASE WHEN job_id = ''',
         job_id,
         ''' THEN end_time END) `',
         job_id,
         '_end`' 
         )
          ORDER BY start_time ASC        
 )
  INTO @sql
  FROM t;

SET @sql = CONCAT('SELECT exec_id, ', @sql, ' 
                     FROM t 
                    GROUP BY exec_id');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

Fiddle Demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn ký hiệu Euro và Dollar vào một cột trong mysql

  2. Số tham số không hợp lệ:số biến liên kết không khớp với số mã thông báo trong Doctrine

  3. Làm cách nào để sửa các chuỗi UTF-8 được mã hóa kép nằm trong các trường MySQL utf8_general_ci?

  4. Cách đọc tệp nhật ký nhị phân MySQL (BinLog) với mysqlbinlog

  5. Tạo truy vấn tìm kiếm động với PHP và MySQL