Home > Database > Mysql Tutorial > How Can MySQL's GROUP_CONCAT and CONCAT Functions Transform Multiple Rows into a Single Comma-Separated String?

How Can MySQL's GROUP_CONCAT and CONCAT Functions Transform Multiple Rows into a Single Comma-Separated String?

Patricia Arquette
Release: 2024-12-15 08:36:16
Original
415 people have browsed it

How Can MySQL's GROUP_CONCAT and CONCAT Functions Transform Multiple Rows into a Single Comma-Separated String?

Utilizing GROUP_CONCAT and CONCAT for Data Transformation in MySQL

In MySQL, combining data from multiple rows into a single string can be achieved through the use of the GROUP_CONCAT function. Consider a table containing the following information:

id Name Value
1 A 4
1 A 5
1 B 8
2 C 9

An objective could be to transform this data into the following format:

id Column
1 A:4,5,B:8
2 C:9

To accomplish this, a combined approach of GROUP_CONCAT and CONCAT can be employed. Here's the query:

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;
Copy after login

This query operates in two stages:

  1. It first groups by the id and Name columns, concatenating values within each group using the GROUP_CONCAT function. This produces a result set with unique pairs of id and Name where Value is provided in a comma-separated format.
  2. The outer group by id operation further combines the results of the inner query, resulting in a single row for each unique id with a comma-separated list of Name:Value pairs.

By executing this query, you will obtain the desired data transformation, with rows in the following format:

id Column
1 A:4,5,B:8
2 C:9

The above is the detailed content of How Can MySQL's GROUP_CONCAT and CONCAT Functions Transform Multiple Rows into a Single Comma-Separated String?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template