본문 바로가기
SQL/MySQL

MySQL GROUP_CONCAT 을 이용해 여러 행의 내용 합치는 방법

by wakestand 2021. 5. 14.
반응형

MySQL에서 GROUP_CONCAT을 이용해

여러 행의 데이터를 한 행에 합쳐서 보여줄 수 있는데

 

예제를 보면 테이블의 NAME 컬럼 안에는

'수철' 과 '철수' 가 들어있는 것이 보이는데

GROUP_CONCAT(컬럼명) 을 사용해주면

해당 테이블 컬럼 데이터를 한 열에 모아주는 것이 보인다

 

다음은 여러 행을 합칠 경우

붙는 구분자인 쉼표(, comma)인데

기본값이 , 이기 때문에 공백이나 다른 값으로 주고 싶다면

GROUP_CONCAT(컬럼명 SEPARATOR '값');

을 통해 원하는 값으로 설정이 가능하다

마지막으로는 GROUP_CONCAT 시

ORDER BY 를 사용하는 경우인데

 

GROUP_CONCAT(컬럼명 ORDER BY 값 ASC/DESC);

이렇게 사용하면

오름차순/내림차순 기준으로 합쳐줄 수 있다

 

예제에 사용한 쿼리는 다음과 같다

 

SELECT GROUP_CONCAT(NAME) AS GRP_CC
       ,GROUP_CONCAT(NAME SEPARATOR ' ') AS GRP_CC2
       ,GROUP_CONCAT(AGE ORDER BY AGE DESC SEPARATOR '-') AS GRP_CC3
  FROM TB1
반응형

댓글