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

MySQL에서 SELECT 결과에 문자열 연결하기 – CONCAT() 함수 완벽 가이드

MySQL에서 SELECT 쿼리 결과에 문자열을 연결하고 싶다면 CONCAT() 함수를 사용하면 됩니다. CONCAT() 함수는 여러 개의 문자열이나 컬럼 값을 하나로 합쳐서 반환하는 MySQL의 내장 함수입니다.

CONCAT() 함수 기본 문법

아래와 같이 컬럼 이름과 연결하고 싶은 문자열을 함께 전달하면 됩니다.

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

문법이 이해하기 어렵다면 실제 예제를 통해 하나씩 살펴보겠습니다.

예제로 배우는 CONCAT() 사용법

1. 테이블 생성

먼저 예제에 사용할 테이블을 만들어 보겠습니다.

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

2. 데이터 삽입

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)

3. 전체 데이터 조회

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)

4. CONCAT()으로 문자열 연결하기

이제 SELECT 문에서 각 컬럼 값 뒤에 원하는 문자열을 붙여 출력해 보겠습니다.

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)

알아두면 좋은 활용 팁

  • NULL 값 주의: CONCAT() 함수는 인수 중 하나라도 NULL이면 전체 결과가 NULL로 반환됩니다. NULL이 포함될 가능성이 있는 컬럼이라면 IFNULL() 또는 COALESCE() 함수를 함께 사용하는 것이 안전합니다.
  • 별칭(Alias) 활용: AS 키워드를 사용하면 출력되는 컬럼명을 더 읽기 쉽게 변경할 수 있습니다. 예: concat(StudentName, ' as a Name') AS StudentInfo
  • 구분자가 필요하다면 CONCAT_WS(): 여러 문자열 사이에 공통 구분자(쉼표, 공백 등)를 넣고 싶다면 CONCAT_WS() 함수를 사용하는 것이 더 편리합니다.