GROUP_CONCAT 함수

설명

GROUP_CONCAT 함수는 그룹에서 NULL이 아닌 값들을 연결하여 결과 문자열을 VARCHAR 타입으로 반환한다. 질의 결과 행이 없거나 NULL 값만 있으면 NULL을 반환한다.

리턴 값의 최대 크기는 시스템 파라미터 group_concat_max_len의 설정을 따른다. 기본값은 1024바이트이며, 최소값은 4바이트, 최대값은 33,554,432바이트이다. 최대값을 초과하면 NULL을 반환한다.

중복되는 값을 제거하려면 DISTINCT 절을 사용하면 된다. 그룹 결과의 값 사이에 사용되는 기본 구분자는 쉼표(,)이며, 구분자를 명시적으로 표현하려면 SEPARATOR 절과 그 뒤에 구분자로 사용할 문자열을 추가한다. 구분자를 제거하려면 SEPARATOR 절 뒤에 빈 문자열(empty string)을 입력한다.

결과 문자열에 문자형 데이터 타입이 아닌 다른 타입이 전달되면, 에러를 반환한다.

GROUP_CONCAT 함수를 사용하려면 다음의 조건을 만족해야 한다.

구문

GROUP_CONCAT([DISTINCT] {col | expression}

             [ORDER BY {col | unsigned_int} [ASC | DESC]]

             [SEPARATOR str_val])

예제

SELECT GROUP_CONCAT(s_name) FROM code;

  group_concat(s_name)

======================

  'X,W,M,B,S,G'

 

SELECT GROUP_CONCAT(s_name ORDER BY s_name SEPARATOR ':') from code;

  group_concat(s_name order by s_name separator ':')

======================

  'B:G:M:S:W:X'

 

CREATE TABLE t(i int);

INSERT INTO t VALUES (4),(2),(3),(6),(1),(5);

 

SELECT GROUP_CONCAT(i*2+1 ORDER BY 1 SEPARATOR '') FROM t;

  group_concat(i*2+1 order by 1 separator '')

======================

  '35791113'