관리 메뉴

개발 기록이

[MySQL] group_concat 으로 문자열 결합하기 본문

기록/DB

[MySQL] group_concat 으로 문자열 결합하기

studyingbackhoe 2024. 11. 14. 21:04

다음표와 같이 회원정보별 구입한 물품이 있다고 가정해 보자.

회원아이디 구입상품 정렬값
user1  마우스 1
user1 키보드 3
user1 아이스크림 4
user1 과자 5
user1 2
user2 커피 6
user2 음료수 8
user2 7
user2 신발 11
user2 거울 10
user2 가방 9

 

GROUP_CONCAT를 사용해서 유저별 구입상품을 products라는 이름으로 하나의 문자열로 결합할 수 있다. 결합할 컬럼의 구분자는 SEPARATOR 뒤에 지정해준다.

SELECT USER_ID, GROUP_CONCAT(PRODUCT SEPARATOR ', ') AS PRODUCTS
FROM PURCHASES_TB
GROUP BY USER_ID

 

 

특정 정렬값에 따라 정렬된 상태로 문자열을 묶으려면, 결합할 컬럼 바로 뒤에 ORDER BY 절을 추가하면 된다.

SELECT USER_ID, GROUP_CONCAT(PRODUCT ORDER BY ORD_SEQ DESC SEPARATOR ' | ') AS PRODUCTS
FROM PURCHASES_TB
GROUP BY USER_ID