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

SQL:biến đổi hàng thành cột trong MySQL (câu lệnh SELECT)

Bạn có thể sử dụng các biến cho loại tổng hợp này, nhưng truy vấn phức tạp hơn một chút, vì bạn cần liệt kê các giá trị cho mỗi thứ tự:

SELECT o.order_id,
       MAX(case when rank = 1 then created_at end) as created_at_1,
       MAX(case when rank = 1 then email end) as email_1,
       MAX(case when rank = 1 then content end) as content_1,
       MAX(case when rank = 2 then created_at end) as created_at_2,
       MAX(case when rank = 2 then email end) as email_2,
       MAX(case when rank = 2 then content end) as content_2,
FROM orders o LEFT JOIN
     (SELECT oc.*,
             (@rn := if(@o = order_fk, @rn + 1,
                        if(@o := order_fk, 1, 1)
                       )
             ) as rank
      FROM order_comments oc CROSS JOIN
           (SELECT @rn := 0, @o := 0) vars
      ORDER BY order_fk, created_at
     ) oc
     ON o.order_id = oc.order_fk
GROUP BY o.order_id;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lưu trữ micro giây trong MySQL:giải pháp nào?

  2. Sự cố MySQL trên SQL

  3. Thay đổi datadir trên tệp my.ini không được tôn trọng trong WAMP

  4. Làm thế nào để tìm theo nhiều tiêu chí với Phalcon findFirst?

  5. MySql Single Table, Chọn 7 ngày qua và bao gồm các hàng trống