개발 기록이
[MySQL] group_concat 으로 문자열 결합하기 본문
다음표와 같이 회원정보별 구입한 물품이 있다고 가정해 보자.
회원아이디 | 구입상품 | 정렬값 |
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
'기록 > DB' 카테고리의 다른 글
[MSSQL] 테이블 복사, 컬럼 추가, 변경, 삭제 (0) | 2024.12.30 |
---|---|
[Oracle] DECODE, CASE 조건문 처리 (0) | 2024.10.06 |
[MySQL] mybatis로 ROWNUM 생성하기 (0) | 2024.02.08 |
[Mybatis] <sql>, <include> 를 이용한 중복쿼리 묶기 (0) | 2023.09.28 |
[MySQL] 딕셔너리, 메타데이터란? (0) | 2022.11.16 |