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

MySQL SELECT 문에서 필드 연결하는 방법 – CONCAT() 함수 완벽 가이드

MySQL에서 SELECT 문을 사용할 때 여러 필드(컬럼)의 값을 하나의 문자열로 합쳐서 조회해야 하는 경우가 자주 있습니다. 이럴 때 사용하는 것이 바로 CONCAT() 함수입니다. CONCAT() 함수는 인자로 전달된 문자열이나 컬럼 값을 순서대로 연결하여 하나의 문자열로 반환합니다.

CONCAT() 함수 기본 문법

MySQL SELECT 문에서 필드를 연결하려면 아래와 같은 문법을 사용합니다.

SELECT CONCAT(yourColumnName1,'anyConcatenationString'),CONCAT(yourColumnName2,'anyConcatenationString'),....N from yourTableName;

예제 테이블 생성하기

위 문법을 실제로 이해하기 위해 먼저 예제 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table selectConcat
-> (
-> StudentId int,
-> StudentName varchar(100),
-> StudentAge int
-> );
Query OK, 0 rows affected (1.32 sec)

레코드 삽입하기

INSERT 명령을 사용하여 테이블에 샘플 데이터를 입력합니다.

mysql> insert into selectConcat values(1,'Carol',23);
Query OK, 1 row affected (0.19 sec)

mysql> insert into selectConcat values(2,'John',24);
Query OK, 1 row affected (0.25 sec)

mysql> insert into selectConcat values(3,'Adam',25);
Query OK, 1 row affected (0.14 sec)

mysql> insert into selectConcat values(4,'Bob',21);
Query OK, 1 row affected (0.20 sec)

mysql> insert into selectConcat values(5,'Sam',22);
Query OK, 1 row affected (0.16 sec)

전체 레코드 조회하기

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

mysql> select *from selectConcat;

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

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1         | Carol       | 23         |
| 2         | John        | 24         |
| 3         | Adam        | 25         |
| 4         | Bob         | 21         |
| 5         | Sam         | 22         |
+-----------+-------------+------------+
5 rows in set (0.00 sec)

SELECT 문에서 필드 연결하기

이제 CONCAT() 함수를 활용하여 SELECT 문에서 필드를 연결해 보겠습니다. 아래 쿼리는 학생 ID와 이름 컬럼에 각각 문자열을 붙여서 조회합니다.

mysql> select concat(StudentId,' as an Id'),concat(StudentName,' as a Name') from selectConcat;

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

+-------------------------------+----------------------------------+
| concat(StudentId,' as an Id') | concat(StudentName,' as a Name') |
+-------------------------------+----------------------------------+
| 1 as an Id                    | Carol as a Name                  |
| 2 as an Id                    | John as a Name                   |
| 3 as an Id                    | Adam as a Name                   |
| 4 as an Id                    | Bob as a Name                    |
| 5 as an Id                    | Sam as a Name                    |
+-------------------------------+----------------------------------+
5 rows in set (0.00 sec)

CONCAT() 함수 사용 시 참고 사항

CONCAT() 함수를 사용할 때 몇 가지 유의할 점이 있습니다.

1. NULL 처리: CONCAT() 함수는 인자 중 하나라도 NULL이 포함되어 있으면 전체 결과가 NULL로 반환됩니다. NULL 값이 있을 수 있는 컬럼을 연결할 때는 IFNULL() 또는 COALESCE() 함수를 함께 사용하는 것이 좋습니다.

2. 별칭(Alias) 지정: 연결된 결과의 컬럼명이 길어지므로 AS 키워드를 사용해 별칭을 지정하면 결과를 더 깔끔하게 확인할 수 있습니다. 예를 들어 concat(StudentId,' as an Id') AS IdInfo처럼 작성할 수 있습니다.

3. 구분자 연결: 여러 값을 특정 구분자로 연결하고 싶다면 CONCAT_WS() 함수를 사용하면 편리합니다. 첫 번째 인자로 구분자를 지정하면 나머지 값들이 해당 구분자로 자동 연결됩니다.