imhamburger 님의 블로그
Mysql - CONCAT과 GROUP_CONCAT 본문
CONCAT과 GROUP_CONCAT은 둘다 문자열을 합칠 때 사용한다.
그렇지만 사용 목적과 동작 단위가 근본적으로 다르다.
단순 비교 대상이라기보다는 “행 단위 vs 집계 단위” 함수로 구분해야 한다.
CONCAT: 행 단위 문자열 결합
SELECT
CONCAT(first_name, ' ', last_name) AS full_name
FROM users;
| first_name | last_name | full_name |
| Burger | Ham | Burger Ham |
GROUP_CONCAT: 여러 행을 하나의 문자열로 집계
SELECT
user_id,
GROUP_CONCAT(product_name) AS products
FROM orders
GROUP BY user_id;
| user_id | products |
| 1 | Apple,Banana,Orange |
근데 만약에
중복된 문자열이 있다면??
| user_id | products |
| 1 | Apple,Banana,Orange,Orange |
다음과 같이 쓸 수 있다.
SELECT
user_id,
GROUP_CONCAT(DISTINCT product_name) AS products
FROM orders
GROUP BY user_id;
아래와 같이 응용해서 쓸 수 있다.
SELECT user_id,
GROUP_CONCAT(DISTINCT products ORDER BY products SEPARATOR '-') AS products
FROM orders
GROUP BY user_id;
| user_id | products |
| 1 | Apple-Banana-Orange |
'Mysql' 카테고리의 다른 글
| Leetcode - Analyze Subscription Conversion 문제풀이 (0) | 2025.12.28 |
|---|---|
| Leetcode - Seasonal Sales Analysis 문제풀이 (0) | 2025.12.26 |
| Leetcode - Trips and Users 문제풀이 (0) | 2025.12.14 |
| 해커랭크 - Weather Observation Station 20 문제풀이 (0) | 2025.12.03 |
| 해커랭크 - BST 문제 풀이 (0) | 2025.11.30 |