본문 바로가기

IT/Mysql & MariaDB

[Mysql] GROUP_CONCAT 사용 방법

1. GROUP_CONCAT 명령어

SELECT의 결과로 나온 여러 행의 특정 컬럼을 한줄로 출력할 때 사용한다.
(NULL 값은 제외된다.)

2. 사용 방법

GROUP_CONCAT([DISTINCT] [expr, column] [ORDER BY column DESC] [SEPARATOR '구분자'])

3. 사용 예제

 1) member 테이블

CREATE TABLE `member` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`NAME` VARCHAR(30) NULL DEFAULT NULL
	`age` INT(11) NULL DEFAULT NULL,
	PRIMARY KEY (`id`)
)

 2) member 데이터

INSERT INTO `member` (`NAME`, `age`) VALUES ('kim', 30);
INSERT INTO `member` (`NAME`, `age`) VALUES ('hong', 30);
INSERT INTO `member` (`NAME`, `age`) VALUES ('go', 31);
INSERT INTO `member` (`NAME`, `age`) VALUES ('lee', 33);
INSERT INTO `member` (`NAME`, `age`) VALUES ('son', 35);
INSERT INTO `member` (`NAME`, `age`) VALUES ('chang', 32);
INSERT INTO `member` (`NAME`, `age`) VALUES ('chei', 33);
INSERT INTO `member` (`NAME`, `age`) VALUES ('ho', 31);
INSERT INTO `member` (`NAME`, `age`) VALUES ('gu', 36);
INSERT INTO `member` (`NAME`, `age`) VALUES ('sang', 38);
INSERT INTO `member` (`NAME`, `age`) VALUES ('jang', 39);

 3) 쿼리

SELECT GROUP_CONCAT(name ORDER BY age DESC SEPARATOR ',') AS 'members'
FROM member

 4) 결과

jang,sang,gu,son,chei,lee,chang,ho,go,hong,kim