MySQL에서 CONCAT 함수란?
MySQL에서 CONCAT 함수는 두 개 이상의 문자열을 하나로 연결(결합)하는 데 사용되는 함수입니다.
다양한 데이터 타입(숫자, 문자열 등)을 조합하여 하나의 문자열로 반환할 수 있어, 결과 데이터를 좀 더 직관적으로 표현하거나 출력 포맷을 커스터마이징할 때 유용합니다.
기본 문법
CONCAT(string1, string2, ..., stringN)
- string1, string2, ..., stringN: 결합하고자 하는 문자열 또는 값을 입력합니다.
- 최소 1개의 입력값이 필요하며, 여러 개의 값을 쉼표(,)로 구분합니다.
특징
- NULL 처리:
- 하나라도 NULL 값이 포함되면 전체 결과가 NULL로 반환됩니다.
- 이를 방지하려면 IFNULL()을 함께 사용하여 NULL 값을 대체할 수 있습니다.
- 입력 값 타입:
- 문자열뿐만 아니라 숫자형 데이터를 입력해도 자동으로 문자열로 변환되어 처리됩니다.
1. 단순 문자열 결합
SELECT CONCAT('Hello', ' ', 'World') AS Result;
2. 컬럼 값 결합
first_name과 last_name 컬럼 값을 결합하여 전체 이름(Full_Name)을 생성합니다.
SELECT CONCAT(first_name, ' ', last_name) AS Full_Name
FROM employees;
3. 숫자와 문자열 결합
숫자형 컬럼 order_id가 문자열과 결합되어 출력됩니다.
SELECT CONCAT('Order ID: ', order_id) AS Order_Info
FROM orders;
4. NULL 값 처리
만약 product_name이나 price에 NULL이 포함되어 있다면 결과는 NULL로 반환됩니다.
예를 들어, 테이블에 다음과 같은 데이터가 있다면
product_name | price |
Laptop | 1000 |
NULL | 500 |
코드
SELECT CONCAT('Product: ', product_name, ', Price: ', price) AS Product_Info
FROM products;
결과
Product_Info
Product: Laptop, Price: 1000
NULL
이를 해결하려면?
SELECT CONCAT('Product: ', IFNULL(product_name, 'Unknown'), ', Price: ', price) AS Product_Info
FROM products;
'언어 > MySQL' 카테고리의 다른 글
[MySQL] JOIN, LEFT JOIN, RIGHT JOIN (0) | 2025.02.21 |
---|---|
[MySQL] case 구문 (0) | 2025.01.25 |