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

MySQL에서 두 개의 컬럼 값을 하이픈으로 구분하여 하나의 컬럼으로 합치는 방법

MySQL에서 두 개 이상의 컬럼 값을 하나의 문자열로 합쳐야 하는 경우가 자주 있습니다. 예를 들어 국가 코드와 국가 이름을 각각 저장하고 있지만, 조회 시에는 100-US처럼 하이픈(-)으로 구분된 하나의 값으로 출력하고 싶다면 CONCAT() 함수를 사용하면 됩니다.

1. 테이블 생성하기

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

mysql> create table DemoTable835(
    CountryCode int,
    CountryName varchar(100)
);
Query OK, 0 rows affected (0.63 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용하여 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable835 values(100,'US');
Query OK, 1 row affected (0.36 sec)
mysql> insert into DemoTable835 values(101,'UK');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable835 values(102,'AUS');
Query OK, 1 row affected (0.26 sec)
mysql> insert into DemoTable835 values(103,'ENG');
Query OK, 1 row affected (0.09 sec)

3. 데이터 조회하기

SELECT 문을 사용하여 테이블의 전체 레코드를 확인합니다.

mysql> select *from DemoTable835;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-------------+-------------+
| CountryCode | CountryName |
+-------------+-------------+
|          100 | US          |
|          101 | UK |
| 102 | AUS |
| 103 | ENG |
+-------------+-------------+
4 rows in set (0.00 sec)

4. CONCAT() 함수로 두 컬럼 값 연결하기

두 개의 컬럼 값을 하나의 컬럼으로 연결하는 쿼리는 다음과 같습니다. CONCAT() 함수 안에 컬럼과 구분자로 사용할 하이픈('-')을 순서대로 넣어주면 됩니다.

mysql> select concat(CountryCode,'-',CountryName) from DemoTable835;

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

+-------------------------------------+
| concat(CountryCode,'-',CountryName) |
+-------------------------------------+
| 100-US |
| 101-UK |
| 102-AUS |
| 103-ENG |
+-------------------------------------+
4 rows in set (0.00 sec)

추가 팁: 별칭(Alias) 활용하기

결과 컬럼의 이름을 더 읽기 좋게 만들고 싶다면 AS 키워드를 사용해 별칭을 지정할 수 있습니다.

mysql> select concat(CountryCode,'-',CountryName) AS CountryInfo from DemoTable835;

이렇게 하면 결과 컬럼명이 CountryInfo로 표시되어 가독성이 크게 향상됩니다. 또한 CONCAT_WS() 함수를 사용하면 구분자를 한 번만 지정하여 여러 컬럼을 연결할 수도 있습니다. 예를 들어 CONCAT_WS('-', CountryCode, CountryName)처럼 작성하면 동일한 결과를 얻을 수 있습니다.