Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL SELECT 절에서 텍스트 값 연결하기: CONCAT() 함수 완벽 가이드

MySQL에서 SELECT 절 내에서 텍스트 값을 추가하거나 연결해야 할 때는 CONCAT() 함수를 사용하면 됩니다. 이 함수는 여러 개의 문자열이나 컬럼 값을 하나의 문자열로 합쳐서 반환해 주며, 실무에서 이름과 국가처럼 분리된 데이터를 하나의 문장으로 출력할 때 매우 유용합니다.

1. 예제 테이블 생성하기

먼저 연결 실습에 사용할 테이블을 만들어 보겠습니다. 사용자 ID, 이름, 국가명을 저장하는 간단한 구조입니다.

mysql> create table ConcatenatingDemo
   -> (
   -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> UserName varchar(20),
   -> UserCountryName varchar(20)
   -> );
Query OK, 0 rows affected (0.82 sec)

2. 샘플 데이터 삽입하기

테이블 생성이 완료되면 INSERT 명령으로 몇 개의 레코드를 추가합니다.

mysql> insert into ConcatenatingDemo(UserName,UserCountryName) values('John','US');
Query OK, 1 row affected (0.14 sec)
mysql> insert into ConcatenatingDemo(UserName,UserCountryName) values('Carol','UK');
Query OK, 1 row affected (0.13 sec)
mysql> insert into ConcatenatingDemo(UserName,UserCountryName) values('Bob','AUS');
Query OK, 1 row affected (0.15 sec)
mysql> insert into ConcatenatingDemo(UserName,UserCountryName) values('David','US');
Query OK, 1 row affected (0.29 sec)

3. 전체 레코드 조회하기

SELECT 문으로 테이블의 모든 데이터를 확인해 보겠습니다.

mysql> select *from ConcatenatingDemo;

실행 결과는 다음과 같습니다.

+--------+----------+-----------------+
| UserId | UserName | UserCountryName |
+--------+----------+-----------------+
|      1 | John     | US              |
|      2 | Carol    | UK              |
|      3 | Bob      | AUS             |
|      4 | David    | US              |
+--------+----------+-----------------+
4 rows in set (0.00 sec)

4. CONCAT() 함수로 텍스트 연결하기

이제 SELECT 절 안에서 CONCAT() 함수를 사용해 사용자 이름과 국가명을 하나의 문장으로 연결해 보겠습니다. 쉼표(,)로 구분된 인수들이 순서대로 이어져 하나의 문자열이 되며, AS 키워드로 결과 컬럼의 별칭도 지정할 수 있습니다.

mysql> select concat(UserName,' belongs to ( ',UserCountryName,' )') as AddingTextDemo from ConcatenatingDemo;

실행 결과는 다음과 같습니다.

+-------------------------+
| AddingTextDemo          |
+-------------------------+
| John belongs to ( US )  |
| Carol belongs to ( UK ) |
| Bob belongs to ( AUS )  |
| David belongs to ( US ) |
+-------------------------+
4 rows in set (0.00 sec)

5. CONCAT() 함수 사용 시 알아두면 좋은 팁

  • NULL 처리: CONCAT() 함수는 인수 중 하나라도 NULL이면 전체 결과가 NULL로 반환됩니다. NULL을 다른 문자열로 대체하고 싶다면 IFNULL() 또는 COALESCE() 함수를 함께 사용하는 것이 좋습니다.
  • 구분자 자동 삽입: 여러 값을 일정한 구분자(예: 쉼표)로 연결하려면 CONCAT_WS() 함수를 사용하면 더 깔끔하게 처리할 수 있습니다.
  • 숫자형 데이터 연결: 숫자 컬럼도 CONCAT()에 넣으면 자동으로 문자열로 변환되어 연결됩니다.

이처럼 MySQL의 CONCAT() 함수를 활용하면 별도의 애플리케이션 로직 없이도 SQL 쿼리만으로 원하는 형식의 문자열을 손쉽게 만들어 낼 수 있습니다.