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

MySQL GROUP_CONCAT với COLUMN SPLIT

Nếu bạn biết số lượng mục nhập GROUP_CONCAT (ý tôi là 3 trường được kết hợp trong trường hợp ID =1 và 2 trường được kết hợp trong trường hợp 2, v.v.), thì đó là một cách sai.

SELECT ID, SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 1), ',', -1) AS CODE1,
If(  length(GROUP_CONCAT(NAME)) - length(replace(GROUP_CONCAT(NAME), ',', ''))>1,  
       SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 2), ',', -1) ,NULL) 
           as CODE2,
   SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(NAME), ',', 3), ',', -1) AS CODE3
FROM test
GROUP BY ID;

Đầu ra:

ID  CODE1   CODE2   CODE3
1   A          B    C
2   D       (null)  E
3   F          G    H

Truy vấn trên giả định rằng bạn đang GROUP_CONCAT nhập 3 trường. Nếu bạn đang tạo truy vấn động, bạn có thể thử. SQLFIDDLE

CHỈNH SỬA: Lưu ý:MÃ có thể khác nhau đối với mỗi ROW. (Bỏ qua điều nà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. MYSQL làm thế nào để mở khóa bảng nếu tôi đã sử dụng lệnh LOCK bảng table_name WRITE;

  2. cách lưu nội dung ckeditor trong cơ sở dữ liệu mysql

  3. Không cho phép khóa chính tổng hợp được đảo ngược trong MySQL

  4. Cách lấy danh sách ngày giữa hai ngày trong truy vấn chọn mysql

  5. Ngày mặc định của MySQL () + 14 ngày, cho một cột?