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

MySQL에서 열 값을 다른 텍스트와 연결(CONCAT)해 단일 열로 출력하는 방법

MySQL CONCAT 함수로 열 값과 문자열 합치기

MySQL에서는 CONCAT() 함수를 사용하면 여러 열의 값을 서로 연결할 수 있을 뿐만 아니라, 원하는 임의의 텍스트(문자열)를 중간에 삽입하여 하나의 단일 열 형태로 출력할 수 있습니다. 이번 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> Id int,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.93 sec)

위 쿼리는 정수형 Id 컬럼과 최대 20자까지 저장 가능한 Name 컬럼을 가진 DemoTable을 만듭니다.

2단계: 데이터 삽입

INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values(101,'Chris');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable values(102,'David');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values(103,'Robert');
Query OK, 1 row affected (0.16 sec)

3단계: 저장된 데이터 확인

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

mysql> select *from DemoTable;

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

+------+--------+
| Id | Name |
+------+--------+
| 101 | Chris |
| 102 | David |
| 103 | Robert |
+------+--------+
3 rows in set (0.00 sec)

4단계: CONCAT으로 열 값과 텍스트 연결하기

이제 핵심인 CONCAT 쿼리입니다. 아래와 같이 고정된 안내 문구와 각 열의 값을 함께 연결할 수 있습니다.

mysql> select concat('The student id and name is= ', Id , ',' , Name, ' .') from DemoTable;

CONCAT 함수의 인자로 전달되는 순서대로 문자열과 열 값이 이어 붙여진다는 점이 핵심입니다. 실행 결과는 다음과 같습니다.

+---------------------------------------------------------------+
| concat('The student id and name is= ', Id , ',' , Name, ' .') |
+---------------------------------------------------------------+
| The student id and name is= 101,Chris . |
| The student id and name is= 102,David . |
| The student id and name is= 103,Robert . |
+---------------------------------------------------------------+
3 rows in set (0.01 sec)

정리 및 활용 팁

이처럼 CONCAT 함수를 사용하면 여러 열의 값을 원하는 구분자나 설명 문구와 함께 자유롭게 조합하여 하나의 열로 표시할 수 있습니다. 참고로 MySQL 8.0 이상에서는 CONCAT_WS() 함수를 사용하면 구분자를 한 번만 지정해 여러 값을 깔끔하게 연결할 수도 있습니다. 또한 연결 결과에 별칭(alias)을 지정하면(AS result) 출력 시 컬럼명을 더 보기 좋게 정리할 수 있습니다.