>데이터 베이스 >MySQL 튜토리얼 >MySQL의 GROUP_CONCAT 및 CONCAT 함수는 어떻게 여러 행을 단일 쉼표로 구분된 문자열로 변환할 수 있습니까?

MySQL의 GROUP_CONCAT 및 CONCAT 함수는 어떻게 여러 행을 단일 쉼표로 구분된 문자열로 변환할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-15 08:36:16415검색

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

MySQL에서 데이터 변환을 위해 GROUP_CONCAT 및 CONCAT 활용

MySQL에서는 다음을 통해 여러 행의 데이터를 단일 문자열로 결합할 수 있습니다. GROUP_CONCAT 함수를 사용합니다. 다음 정보가 포함된 테이블을 생각해 보세요.

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

이 데이터를 다음 형식으로 변환하는 것이 목표일 수 있습니다.

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

이를 달성하려면 GROUP_CONCAT 및 CONCAT의 결합된 접근 방식을 사용하세요. 채용될 수 있습니다. 쿼리는 다음과 같습니다.

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;

이 쿼리는 두 단계로 작동합니다.

  1. 먼저 id 및 Name 열을 기준으로 그룹화하고 GROUP_CONCAT 함수를 사용하여 각 그룹 내의 값을 연결합니다. 그러면 값이 쉼표로 구분된 형식으로 제공되는 고유한 id 및 Name 쌍으로 결과 집합이 생성됩니다.
  2. id별 외부 그룹화 작업은 내부 쿼리의 결과를 추가로 결합하여 다음에 대한 단일 행을 생성합니다. 쉼표로 구분된 이름:값 쌍 목록이 있는 각 고유 ID.

이 쿼리를 실행하면 다음 행과 함께 원하는 데이터 변환을 얻을 수 있습니다. 형식:

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

위 내용은 MySQL의 GROUP_CONCAT 및 CONCAT 함수는 어떻게 여러 행을 단일 쉼표로 구분된 문자열로 변환할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.