개발이야기/MySQL

[MySQL] 문자열 합치기/붙이기/연결하기 (CONCAT, CONCAT_WS 사용법&예제)

후린개발자 2023. 9. 11.
반응형

아래 예제 쿼리는 CONCAT, CONCAT_WS 함수를 활용해서 문자열을 결합하고 두 함수의 차이점에 대해서 말씀 드리겠습니다.

 

사용법

 

1. CONCAT 함수

CONCAT(string1, string2, ...)

SELECT CONCAT('Hello', ' ', 'World') AS result;  //출력 : Hello World

 

ㅇ CONCAT 함수는 구분자를 사용하지 않고 문자열을 단순히 연결합니다.

ㅇ string1, string2, ... 결합하려는 문자열의 목록입니다. 여러 개의 인수를 전달하여 필요한 수만큼 문자열을 연결할 수 있습니다.

ㅇ 예를 들어, CONCAT('Hello', 'World')는 "HelloWorld"를 반환합니다.

 

 

2. CONCAT_WS 함수

CONCAT_WS(separator, string1, string2, ...)

 

ㅇ CONCAT_WS 함수는 문자열을 결합할 때 구분자를 사용하여 연결하는 데 사용됩니다.

ㅇ separator: 문자열을 결합할 때 사용할 구분자입니다. 구분자는 결과 문자열의 각 구성 요소 사이에 삽입됩니다.
ㅇ string1, string2, ... 결합하려는 문자열의 목록입니다. 여러 개의 인수를 전달하여 필요한 수만큼 문자열을 연결할 수 있습니다.

ㅇ 예를 들어, CONCAT_WS(', ', 'Apple', 'Banana', 'Cherry')는 Apple, Banana, Cherry를 반환합니다.

 

SELECT CONCAT_WS('-', '2023', '09', '11') AS date; //출력 결과 : 2023-09-11

 

차이점 : CONCAT은 간단한 문자열 연결에 사용되고 구분자를 제공하지 않으며, CONCAT_WS는 구분자를 사용하여 문자열을 연결하고 보다 구조화된 문자열을 생성하는 데 유용합니다.

 

예제

예제 테이블

 

SELECT CONCAT(first_name, ' ', last_name) AS full_name, date_of_birth
FROM students;

 

students 테이블에서 first_name과 last_name 필드를 공백으로 구분하여 하나의 full_name 문자열로 결합하였습니다.

 

쿼리 결과

 

SELECT CONCAT_WS('-', first_name, last_name) AS full_name, date_of_birth
FROM students;

first_name과 last_name을 하이픈(-)으로 구분하여 결합하며 출력 했습니다.

 

쿼리 결과

 

반응형

댓글

💲 추천 글