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

MySQL에서 쿼리 결과를 쉼표로 구분된 목록으로 표시하는 방법

MySQL에서 조회 결과를 쉼표로 구분된 하나의 문자열로 출력하고 싶다면 concat() 함수를 활용하면 됩니다. concat() 함수는 여러 개의 인자를 받아 이를 하나의 문자열로 연결해 주는 함수로, 인자 사이에 쉼표(',')를 삽입하면 원하는 형태의 목록을 손쉽게 만들 수 있습니다.

실제 예제를 통해 살펴보겠습니다. 먼저 CREATE 명령어를 사용하여 테이블을 생성합니다.

mysql> create table CommaSeperateDemo
   - > (
   - > Id int,
   - > FirstName varchar(100),
   - > LastName varchar(100)
   - > );
Query OK, 0 rows affected (0.93 sec)

레코드 삽입하기

테이블 생성이 완료되면 INSERT 문을 사용하여 샘플 데이터를 입력합니다.

mysql> insert into CommaSeperateDemo values(1,'John','Taylor');
Query OK, 1 row affected (0.17 sec)

mysql> insert into CommaSeperateDemo values(2,'Carol','Taylor');
Query OK, 1 row affected (0.12 sec)

mysql> insert into CommaSeperateDemo values(3,'Johnson','T.');
Query OK, 1 row affected (0.16 sec)

이제 저장된 모든 레코드를 조회하여 정상적으로 입력되었는지 확인해 보겠습니다.

mysql> select *from CommaSeperateDemo;

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

+------+-----------+----------+
| Id   | FirstName | LastName |
+------+-----------+----------+
|    1 | John      | Taylor   |
|    2 | Carol     | Taylor   |
|    3 | Johnson   | T.       |
+------+-----------+----------+
3 rows in set (0.00 sec)

concat() 함수로 쉼표 구분 목록 만들기

여러 컬럼의 값을 쉼표로 구분된 단일 목록으로 변환하려면 아래와 같은 기본 문법을 사용합니다.

Select concat(ColumnName1, ',', ColumnName2, ',', ColumnName3,.............) as AliasName from yourTableName;

각 컬럼명 사이에 ','를 인자로 넣고, 결과에 별칭(Alias)을 지정하면 가독성 있는 결과를 얻을 수 있습니다. 위 문법을 실제 쿼리에 적용해 보겠습니다.

mysql> SELECT concat(Id, ',', FirstName,',', LastName) as CONCATEIDFIRSTANDLASTNAME from CommaSeperateDemo;

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

+---------------------------+
| CONCATEIDFIRSTANDLASTNAME |
+---------------------------+
| 1,John,Taylor             |
| 2,Carol,Taylor            |
| 3,Johnson,T.              |
+---------------------------+
3 rows in set (0.00 sec)

결과를 보면 Id, FirstName, LastName 세 컬럼의 값이 각 행마다 쉼표로 연결된 단일 문자열로 출력된 것을 확인할 수 있습니다. 이처럼 concat() 함수는 CSV 형식의 데이터 추출이나 목록 형태의 결과가 필요할 때 매우 유용하게 사용됩니다.