IT's Jenna

Mysql - group_concat 본문

Mysql

Mysql - group_concat

developer Jenna 2021. 4. 26. 12:44

이전 포스팅에서 GROUP BY 절을 어떻게 활용하는지에 대해 설명했었다. 이번 포스팅에선 GROUP BY와 함께 사용하기 좋은 group_concat에 대해 설명해보겠다.

 

데이터 처리를 할 때 특정 데이터들을 한 줄로 처리해서 확인해야 하는 순간이 있다. 이때 적용할 수 있는 구문이 바로 group_concat이다. 바로 예시를 들어보자.

 

아래는 채팅 기능을 구현하기위해 만들어둔 채팅방 별 유저를 정리해둔 chat_room_user 테이블이다.

 

<table.chat_room_user>

SELECT chat_room_idx, group_concat(user_idx) 
FROM umclass.chat_room_user 
GROUP BY chat_room_idx;

위 쿼리문을 돌리면 다음과 같이 결과가 나타난다.

 

<group_concat>


group_concat을 사용하면 GROUP BY를 통해 그룹화할 때 데이터들을 이어 붙여서 하나의 열로 만들 수 있다. group_concat에 default로 들어가 있는 구분자는 쉼표이며 separator를 이용해서 구분자를 사용자 정의할 수도 있다.

SELECT chat_room_idx, group_concat(user_idx separator ' | ') 
FROM umclass.chat_room_user 
GROUP BY chat_room_idx;

<group_concat separator>


혹 다음과 같이 중복되는 내용이 있는 경우에는 distinct를 활용해서 중복값 없이 데이터를 정리할 수도 있다.

 

<distinct 미사용>

SELECT chat_room_idx, group_concat(distinct user_idx) 
FROM umclass.chat_room_user 
GROUP BY chat_room_idx;

 

<distinct 사용>

 

<참고>

fruitdev.tistory.com/16

'Mysql' 카테고리의 다른 글

Mysql 이벤트 스케쥴러 (Event Scheduler)  (0) 2021.06.23
Mysql - LIMIT  (0) 2021.05.12
Mysql - ORDER BY & ALIAS  (0) 2021.04.26
Mysql - GROUP BY & CASE  (0) 2021.01.21
Mysql 기본  (0) 2021.01.21
Comments