MySQL에서 문자열과 숫자를 하나로 합쳐야 할 때는 CONCAT() 함수를 사용하면 됩니다. CONCAT()은 여러 개의 인수를 받아 이를 하나의 문자열로 연결해 주는 함수로, 숫자 타입의 값도 자동으로 문자열로 변환하여 처리해 줍니다.
예제와 함께 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable682(
Name varchar(100),
Age int
);
Query OK, 0 rows affected (0.49 sec)
2. 데이터 삽입
INSERT 명령을 사용해 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable682 values('John',23);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable682 values('Chris',21);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable682 values('David',25);
Query OK, 1 row affected (0.17 sec)3. 전체 레코드 조회
SELECT 문으로 테이블의 모든 레코드를 확인해 보겠습니다.
mysql> select *from DemoTable682;
실행 결과는 다음과 같습니다.
+-------+------+
| Name | Age |
+-------+------+
| John | 23 |
| Chris | 21 |
| David | 25 |
+-------+------+
3 rows in set (0.00 sec)
4. CONCAT()으로 문자열과 숫자 연결하기
다음은 CONCAT() 함수를 사용해 Name(문자열) 컬럼과 Age(숫자) 컬럼을 연결하는 쿼리입니다.
mysql> select concat(Name,Age) from DemoTable682;
실행 결과는 다음과 같습니다.
+------------------+
| concat(Name,Age) |
+------------------+
| John23 |
| Chris21 |
| David25 |
+------------------+
3 rows in set (0.00 sec)
숫자인 Age 값이 자동으로 문자열로 변환되어 이름 뒤에 그대로 붙는 것을 확인할 수 있습니다.
응용: 구분자를 넣고 싶다면?
이름과 나이 사이에 공백이나 다른 구분자를 넣고 싶다면 CONCAT() 안에 구분자 문자열을 함께 전달하면 됩니다.
mysql> select concat(Name, ' - ', Age) from DemoTable682;
또한 여러 값을 지정한 구분자로 한 번에 연결하고 싶다면 CONCAT_WS() 함수를 사용할 수도 있습니다. 첫 번째 인수가 구분자 역할을 하며, NULL 값은 자동으로 건너뛴다는 장점이 있습니다.
mysql> select concat_ws(', ', Name, Age) from DemoTable682;정리
MySQL에서는 CONCAT() 함수를 사용하면 문자열과 숫자를 손쉽게 연결할 수 있습니다. 숫자는 자동으로 문자열로 변환되기 때문에 별도의 형 변환 없이 바로 사용할 수 있으며, 구분자가 필요하다면 CONCAT_WS() 함수를 활용하면 더욱 깔끔하게 처리할 수 있습니다.