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

Cách sử dụng GROUP_CONCAT trong CONCAT trong MySQL

select id, group_concat(`Name` separator ',') as `ColumnName`
from
(
  select 
    id, 
    concat(`Name`, ':', group_concat(`Value` separator ',')) as `Name`
  from mytbl
  group by 
    id, 
    `Name`
) tbl
group by id;

Bạn có thể thấy nó được triển khai tại đây: Sql Fiddle Demo . Chính xác những gì bạn cần.

Cập nhật Chia thành hai bước. Đầu tiên, chúng ta nhận được một bảng có tất cả các giá trị (được phân tách bằng dấu phẩy) so với một [Tên, id] duy nhất. Sau đó, từ bảng đã thu được, chúng tôi nhận được tất cả các tên và giá trị dưới dạng một giá trị duy nhất so với mỗi id duy nhất. Xem điều này được giải thích tại đây Bản trình diễn SQL Fiddle (cuộn xuống vì nó có hai tập kết quả)

Chỉnh sửa Đã xảy ra lỗi khi đọc câu hỏi, tôi chỉ nhóm theo id. Nhưng hai group_contacts là cần thiết nếu (Các giá trị phải được nối nhóm theo Tên và id và sau đó trên tất cả bởi id). Câu trả lời trước đó là

select 
id,group_concat(concat(`name`,':',`value`) separator ',')
as Result from mytbl group by id

Bạn có thể thấy nó được triển khai tại đây: SQL 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. Giới thiệu về các kiểu dữ liệu MySQL

  2. Cấu trúc cơ sở dữ liệu tốt nhất để lưu giữ dữ liệu đa ngôn ngữ là gì?

  3. MySQL tham gia truy vấn bằng cách sử dụng như thế nào?

  4. Cách hàm TRIM () hoạt động trong MySQL

  5. Cách kết nối với MySQL bằng Python