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

SQL:Chọn cột làm

Nếu bạn có một số id ngôn ngữ cố định, thì bạn có thể thực hiện việc này như sau:

select id,
       max(case when LanguageId = 1 then text end) as "1",
       max(case when LanguageId = 2 then text end) as "2",
       max(case when LanguageId = 3 then text end) as "3"
from t
group by id;

Nếu bạn không biết trước id ngôn ngữ, thì bạn cần sử dụng SQL động để tạo truy vấn, sau đó chuẩn bị và thực thi nó.

Nếu languageid là động:

select @s = concat('select id',
                   group_concat(concat(', max(case when LanguageId = ',
                                       LanguageId,
                                       ' then text end) as "',
                                       LanguageId, '"'
                                      )
                               ),
                   ' from t group by id'
                  )
from (select distinct LanguageId from t) t;

PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kiểm tra trong thời gian thực nếu hàng mới đã được thêm vào bảng MySQL

  2. Làm cách nào để nhận các giá trị duy nhất từ ​​trường giá trị được phân tách bằng dấu phẩy?

  3. Các trường của hàng nào được trả về khi Nhóm với MySQL?

  4. Levenshtein:MySQL + PHP

  5. Chuyển mật khẩu cho mysql_config_editor bằng cách sử dụng biến trong shell