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

MySQL에서 여러 열을 CONCAT으로 하나의 새 열에 연결하는 방법

MySQL에서는 CONCAT() 함수를 활용하면 테이블의 여러 열 값을 손쉽게 하나의 새 열로 합칠 수 있습니다. 이 글에서는 실제 예제를 통해 Id, Name, Age 세 개의 열을 하나의 문자열로 연결하는 방법을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable1396
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(40),
-> Age int
-> );
Query OK, 0 rows affected (0.93 sec)

AUTO_INCREMENT 기본키인 Id와 함께 Name(문자열), Age(정수) 열로 구성된 간단한 테이블입니다.

2. 샘플 데이터 삽입하기

INSERT 문을 사용해 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable1396(Name,Age) values('Chris',21);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1396(Name,Age) values('David',24);
Query OK, 1 row affected (0.34 sec)
mysql> insert into DemoTable1396(Name,Age) values('Bob',26);
Query OK, 1 row affected (0.40 sec)

3. 저장된 데이터 확인하기

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

mysql> select * from DemoTable1396;

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

+----+-------+------+
| Id | Name | Age |
+----+-------+------+
| 1 | Chris | 21 |
| 2 | David | 24 |
| 3 | Bob | 26 |
+----+-------+------+
3 rows in set (0.00 sec)

4. CONCAT으로 열 연결하기

이제 여러 열을 하나의 새 열로 연결하는 핵심 쿼리입니다. CONCAT() 함수 안에 연결하고 싶은 열들을 쉼표로 나열하고, AS 키워드로 별칭(Alias)을 지정하면 됩니다.

mysql> select Id,Name,Age, concat(Id,Name,Age) as AllColumns from DemoTable1396;

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

+----+-------+------+------------+
| Id | Name | Age | AllColumns |
+----+-------+------+------------+
| 1 | Chris | 21 | 1Chris21 |
| 2 | David | 24 | 2David24 |
| 3 | Bob | 26 | 3Bob26 |
+----+-------+------+------------+
3 rows in set (0.00 sec)

참고 사항

CONCAT() 함수는 숫자 타입의 값도 자동으로 문자열로 변환하여 연결해 주기 때문에, 위 예제처럼 int 타입인 Id나 Age도 별도의 형변환 없이 그대로 사용할 수 있습니다. 만약 열 사이에 구분자를 넣고 싶다면 CONCAT_WS() 함수를 사용하는 것도 좋은 방법입니다. 예를 들어 CONCAT_WS('-', Id, Name, Age)처럼 작성하면 '1-Chris-21'과 같은 형태로 결과를 얻을 수 있습니다.