MySQL에서는 CONCAT() 함수를 사용하여 여러 열(column)의 문자열을 하나로 합칠 수 있습니다. 이번 글에서는 FirstName과 LastName 두 개의 열에 추가 문자열을 붙여 하나의 문자열로 연결하는 방법을 예제와 함께 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저 데모용 테이블을 생성합니다.
mysql> create table DemoTable
(
FirstName varchar(100),
LastName varchar(100)
);
Query OK, 0 rows affected (0.76 sec)2. 데이터 삽입
INSERT 명령을 사용하여 테이블에 샘플 레코드를 삽입합니다.
mysql> insert into DemoTable values('Chris','Brown');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Adam','Smith');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('Carol','Taylor');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('David','Miller');
Query OK, 1 row affected (0.12 sec)3. 전체 데이터 확인
SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+-----------+----------+ | FirstName | LastName | +-----------+----------+ | Chris | Brown | | Adam | Smith | | Carol | Taylor | | David | Miller | +-----------+----------+ 4 rows in set (0.00 sec)
4. CONCAT() 함수로 문자열 연결하기
다음은 CONCAT() 함수를 활용한 문자열 연결 쿼리입니다. FirstName과 LastName을 합치되, 모든 결과 값 앞에 'Hello '라는 추가 문자열도 함께 연결했습니다.
mysql> select concat('Hello ',FirstName,' ',LastName) from DemoTable;실행 결과는 다음과 같습니다.
+-----------------------------------------+
| concat('Hello ',FirstName,' ',LastName) |
+-----------------------------------------+
| Hello Chris Brown |
| Hello Adam Smith |
| Hello Carol Taylor |
| Hello David Miller |
+-----------------------------------------+
4 rows in set (0.00 sec)참고 사항
CONCAT() 함수는 인수 중 하나라도 NULL이면 전체 결과가 NULL로 반환됩니다. 따라서 NULL이 포함될 가능성이 있는 열을 다룰 때는 CONCAT_WS() 함수나 IFNULL(), COALESCE()를 함께 사용하는 것이 안전합니다. 또한 AS 키워드로 별칭(alias)을 지정하면 결과 컬럼명을 더 읽기 쉽게 표시할 수 있습니다.