MySQL의 GROUP_CONCAT 함수를 사용하여 여러 행의 데이터를 하나의 행으로 병합

WBOY
풀어 주다: 2023-07-25 19:54:25
원래의
3488명이 탐색했습니다.

MySQL의 GROUP_CONCAT 함수를 사용하여 여러 행의 데이터를 하나의 행으로 병합

실제 데이터 처리 과정에서 후속 분석 및 처리를 용이하게 하기 위해 여러 행의 데이터를 하나의 행으로 병합해야 하는 경우가 있습니다. MySQL의 GROUP_CONCAT 함수는 이 기능을 달성하는 데 도움이 될 수 있습니다. 이 문서에서는 GROUP_CONCAT 함수의 사용법을 소개하고 몇 가지 일반적인 시나리오의 코드 예제를 제공합니다.

GROUP_CONCAT 함수는 MySQL에서 문자열을 병합하는 데 사용되는 집계 함수입니다. 지정된 구분 기호에 따라 데이터 열을 문자열로 연결할 수 있습니다. 구체적인 구문은 다음과 같습니다.

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                  [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])
로그인 후 복사

여기서 DISTINCT는 병합할 데이터의 중복 제거를 나타내고, expr은 병합할 열 이름이나 표현식을 나타내며, ORDER BY는 병합된 데이터의 순서를 제어하는 ​​데 사용되며 SEPARATOR는 병합할 데이터의 순서를 제어하는 ​​데 사용됩니다. 병합된 문자열 구분 기호를 지정합니다.

다음은 몇 가지 일반적인 시나리오에서 GROUP_CONCAT 함수를 사용하는 방법에 대한 코드 예제입니다.

  1. 동일한 열의 데이터 결합

학생의 이름과 취미가 포함된 학생 테이블이 있다고 가정합니다. 보다 쉬운 분석을 위해 각 학생의 취미를 하나의 행으로 결합하고 싶습니다. 이는 다음 코드를 사용하여 달성할 수 있습니다.

SELECT student_name, GROUP_CONCAT(hobby) AS hobbies
FROM student
GROUP BY student_name;
로그인 후 복사

위 코드는 각 학생의 이름과 취미를 출력하며 취미는 기본 쉼표 구분 기호를 사용하여 연결됩니다.

  1. 여러 열의 데이터 병합

때로는 여러 열의 데이터를 병합해야 할 때가 있습니다. 예를 들어 취미 외에도 학생 테이블에는 평가 열도 있습니다. 우리는 각 학생의 좋아요와 평점을 하나의 문자열로 결합하려고 합니다. 이는 다음 코드를 사용하여 달성할 수 있습니다:

SELECT student_name, GROUP_CONCAT(CONCAT(hobby, ':', score)) AS hobby_score
FROM student
GROUP BY student_name;
로그인 후 복사

위 코드는 각 학생의 이름, 취미 및 평가를 콜론으로 구분하여 출력합니다.

  1. 지정된 순서로 데이터 병합

때로는 지정된 순서로 데이터를 병합해야 할 때가 있습니다. 예를 들어 주문 번호와 제품 이름이 포함된 주문 테이블이 있습니다. 주문번호의 오름차순으로 제품명을 병합하고 싶습니다. 이를 달성하려면 다음 코드를 사용할 수 있습니다.

SELECT order_id, GROUP_CONCAT(product_name ORDER BY order_id ASC) AS products
FROM orders
GROUP BY order_id;
로그인 후 복사

위 코드는 각 주문의 주문 번호와 해당 제품 이름을 출력합니다. 제품 이름은 주문 번호의 오름차순으로 정렬됩니다.

위는 몇 가지 일반적인 시나리오에서 MySQL의 GROUP_CONCAT 함수를 사용하는 방법에 대한 코드 예제입니다. GROUP_CONCAT 함수를 사용하면 여러 행의 데이터를 하나의 행으로 쉽게 병합하여 데이터 처리 효율성을 높일 수 있습니다. 이 글이 여러분의 데이터베이스 운영에 도움이 되기를 바랍니다!

위 내용은 MySQL의 GROUP_CONCAT 함수를 사용하여 여러 행의 데이터를 하나의 행으로 병합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿