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

MySQL에서 여러 열을 하나의 열로 합쳐 표시하는 방법 – CONCAT() 함수 완벽 가이드

MySQL에서 이름처럼 분리되어 저장된 여러 개의 열 값을 하나의 열로 합쳐서 조회해야 하는 경우가 자주 있습니다. 이럴 때 CONCAT() 함수를 사용하면 간단하게 해결할 수 있습니다. 이 글에서는 실제 예제를 통해 여러 열을 하나의 문자열로 결합하고, 별칭(alias)을 지정한 뒤 정렬까지 적용하는 방법을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다. FirstName(이름)과 LastName(성) 두 개의 열을 가진 간단한 테이블입니다.

mysql> create table DemoTable
-> (
-> FirstName varchar(30),
-> LastName varchar(30)
-> );
Query OK, 0 rows affected (0.49 sec)

2. 샘플 데이터 삽입하기

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

mysql> insert into DemoTable values('Chris','Brown');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable values('Adam','Smith');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable values('Carol','Taylor');
Query OK, 1 row affected (0.15 sec)

3. 전체 데이터 확인하기

SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| Chris | Brown |
| Adam | Smith |
| Carol | Taylor |
+-----------+----------+
3 rows in set (0.00 sec)

4. CONCAT()으로 여러 열을 하나의 열로 표시하기

다음은 CONCAT() 함수를 사용하여 FirstName과 LastName 두 열을 공백으로 구분해 하나의 값으로 결합하고, 'concatValue'라는 별칭을 부여한 뒤 내림차순으로 정렬하는 쿼리입니다.

mysql> select concat(FirstName,' ',LastName) as concatValue from DemoTable order by
concatValue DESC;

출력 결과

+--------------+
| concatValue |
+--------------+
| Chris Brown |
| Carol Taylor |
| Adam Smith |
+--------------+
3 rows in set (0.00 sec)

추가 팁: CONCAT_WS()와 NULL 처리

여러 열을 구분자로 연결할 때는 CONCAT_WS()(Concat With Separator) 함수를 사용하는 것도 좋은 방법입니다. 첫 번째 인수로 구분자를 지정하므로 코드가 더 깔끔해집니다.

mysql> select concat_ws(' ', FirstName, LastName) as fullName from DemoTable;

또한 CONCAT() 함수는 인수 중 하나라도 NULL이면 결과 전체가 NULL이 되므로, NULL이 포함될 가능성이 있는 열은 IFNULL() 또는 COALESCE() 함수로 감싸 처리하는 것이 안전합니다.

mysql> select concat(IFNULL(FirstName,''), ' ', IFNULL(LastName,'')) as fullName from DemoTable;

정리

MySQL에서 여러 열을 하나의 열로 표시하려면 CONCAT() 함수를 사용하면 됩니다. AS 키워드로 별칭을 지정하면 결과 열의 이름을 원하는 대로 정할 수 있고, ORDER BY 절과 함께 사용하면 결합된 값 기준으로 정렬할 수도 있습니다. 데이터에 NULL이 있을 수 있다면 CONCAT_WS()나 IFNULL()을 함께 활용하는 것이 좋습니다.