언어/MySQL

[MySQL] concat 함수

icodesiuuuu 2025. 1. 25. 01:18

MySQL에서 CONCAT 함수란?

MySQL에서 CONCAT 함수는 두 개 이상의 문자열을 하나로 연결(결합)하는 데 사용되는 함수입니다.
다양한 데이터 타입(숫자, 문자열 등)을 조합하여 하나의 문자열로 반환할 수 있어, 결과 데이터를 좀 더 직관적으로 표현하거나 출력 포맷을 커스터마이징할 때 유용합니다.

 

 

기본 문법

CONCAT(string1, string2, ..., stringN)

 

  • string1, string2, ..., stringN: 결합하고자 하는 문자열 또는 값을 입력합니다.
  • 최소 1개의 입력값이 필요하며, 여러 개의 값을 쉼표(,)로 구분합니다.

 

 

특징

  1. NULL 처리:
    • 하나라도 NULL 값이 포함되면 전체 결과가 NULL로 반환됩니다.
    • 이를 방지하려면 IFNULL()을 함께 사용하여 NULL 값을 대체할 수 있습니다.
  2. 입력 값 타입:
    • 문자열뿐만 아니라 숫자형 데이터를 입력해도 자동으로 문자열로 변환되어 처리됩니다.

 

 

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