MySQL에서 GROUP_CONCAT 함수를 사용하여 여러 행의 데이터를 문자열로 병합하는 방법
MySQL 데이터베이스에서는 때로는 여러 행의 데이터를 문자열로 병합해야 할 때가 있습니다. 이러한 상황은 열의 여러 값을 단일 문자열로 결합하고 쉼표나 기타 구분 기호로 구분해야 할 때 자주 발생합니다. MySQL은 이러한 요구를 충족시키기 위해 매우 유용한 GROUP_CONCAT 기능을 제공합니다.
GROUP_CONCAT 함수의 구문은 다음과 같습니다.
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 함수의 사용법을 보여주는 예시입니다.
id와 name이라는 두 개의 필드가 포함된 과일 테이블이 있다고 가정해 보겠습니다. 그중 이름 열에는 여러 행의 데이터가 포함되어 있습니다. 동일한 ID를 가진 이름을 문자열로 병합하고 쉼표로 구분하려고 합니다. 테이블의 구조와 데이터는 다음과 같습니다.
CREATE TABLE fruit ( id INT, name VARCHAR(50) ); INSERT INTO fruit (id, name) VALUES (1, '苹果'); INSERT INTO fruit (id, name) VALUES (1, '梨子'); INSERT INTO fruit (id, name) VALUES (1, '香蕉'); INSERT INTO fruit (id, name) VALUES (2, '葡萄'); INSERT INTO fruit (id, name) VALUES (2, '桃子'); INSERT INTO fruit (id, name) VALUES (3, '橙子');
다음 SQL 문을 사용하여 동일한 ID를 가진 이름을 문자열로 병합할 수 있습니다.
SELECT id, GROUP_CONCAT(name SEPARATOR ',') AS merged_names FROM fruit GROUP BY id;
위 SQL 문을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
id | merged_names ---|------------- 1 | 苹果,梨子,香蕉 2 | 葡萄,桃子 3 | 橙子
이 예에서는 id 열을 기준으로 그룹화하고 GROUP_CONCAT 함수를 사용하여 각 그룹의 name 열을 쉼표로 구분된 문자열로 결합했습니다.
중복을 제거할 필요가 없다면 DISTINCT 키워드를 생략할 수 있다는 점에 유의하세요. 또한 병합된 문자열을 정렬해야 하는 경우 ORDER BY 절을 사용할 수 있습니다. 예를 들어 이름 열에서 병합된 문자열을 알파벳순으로 정렬할 수 있습니다.
SELECT id, GROUP_CONCAT(name ORDER BY name ASC SEPARATOR ',') AS merged_names FROM fruit GROUP BY id;
위의 SQL 문을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
id | merged_names ---|------------- 1 | 梨子,苹果,香蕉 2 | 桃子,葡萄 3 | 橙子
병합된 문자열이 알파벳순으로 정렬된 것을 볼 수 있습니다. 이름 열은 알파벳순으로 정렬됩니다.
실제 응용 프로그램에서 GROUP_CONCAT 함수는 매우 실용적입니다. 여러 행의 데이터를 문자열로 병합함으로써 데이터를 쉽게 요약 및 표시하고 데이터베이스 쿼리의 유연성을 향상시킬 수 있습니다.
요약하자면, 이 글에서는 MySQL의 GROUP_CONCAT 함수를 사용하여 여러 행의 데이터를 문자열로 병합하는 방법을 소개합니다. 실제 예제 시연을 통해 독자들이 이 기능의 사용법을 익히고 데이터베이스의 데이터 병합 요구 사항을 더 잘 처리할 수 있기를 바랍니다.
위 내용은 MySQL에서 GROUP_CONCAT 함수를 사용하여 여러 행의 데이터를 문자열로 결합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!