Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Developer N

[MySQL] 여러 행을 한줄로 표현하는 방법(GROUP_CONCAT) 본문

STUDY/DBMS

[MySQL] 여러 행을 한줄로 표현하는 방법(GROUP_CONCAT)

nnh 2023. 4. 12. 21:38
728x90

 

 

GROUP_CONCAT()

n개의 row로 결과가 출력되는 쿼리를 한줄의 row로 표현하고 싶을 때가 있다.

이때 GROUP_CONCAT을 사용하면 된다.

 

 

 

 

쿼리 :

select userId
from userInfo

결과 :

userId
aaa1
aaa1
ccc3
bbb2

 

 

위 쿼리의 결과가 표와 같다고 할 때

네개의 로우를 하나의 로우로 표현하고자 한다면 아래와 같이 쿼리를 작성하면 된다.

 

 

 

쿼리 :

select GROUP_CONCAT(userId SEPARATOR '|') as userId
from userInfo

결과 :

userId
aaa1|aaa1|ccc3|bbb2

 

위의 표처럼 하나의 row에 구분자를 기준으로 모든 row가 붙어서 출력된다.

SEPARATOR을 사용하여 구분자를 원하는 대로 변경할 수도 있다.

 

 

 

 

 

중복 제거

만약 중복을 제거하고 싶은 경우아래 쿼리처럼 DISTINCT를 사용하면 된다.

 

쿼리 :

select GROUP_CONCAT(DISTINCT userId SEPARATOR '|') as userId
from userInfo

결과 :

userId
aaa1|ccc3|bbb2

 

 

 

 

정렬

order by를 이용하여 정렬 기준도 정할 수 있다.

 

쿼리 :

select GROUP_CONCAT(DISTINCT userId ORDER BY userId SEPARATOR '|') as userId
from userInfo

결과 :

useId
aaa1|bbb2|ccc3

 

 

 

 

 

 

728x90
Comments