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

MySQL에서 쉼표로 구분된 열 데이터를 표시하는 방법

MySQL에서는 GROUP_CONCAT() 함수를 사용하면 여러 행의 데이터를 쉼표로 구분된 하나의 목록으로 손쉽게 표시할 수 있습니다. 이번 글에서는 실제 예제를 통해 GROUP_CONCAT() 함수의 사용법을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable
    (
    Value int
    );
Query OK, 0 rows affected (0.26 sec)

2. 데이터 삽입하기

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

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.06 sec)

mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.07 sec)

mysql> insert into DemoTable values(30);
Query OK, 1 row affected (0.06 sec)

mysql> insert into DemoTable values(40);
Query OK, 1 row affected (0.07 sec)

mysql> insert into DemoTable values(50);
Query OK, 1 row affected (0.07 sec)

3. 저장된 레코드 확인하기

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

mysql> select *from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+-------+
| Value |
+-------+
| 10    |
| 20    |
| 30    |
| 40    |
| 50    |
+-------+
5 rows in set (0.00 sec)

4. GROUP_CONCAT()으로 쉼표로 구분된 값 표시하기

이제 열의 데이터를 쉼표로 구분하여 한 줄로 표시하는 쿼리입니다. GROUP_CONCAT() 함수 안에 대상 열을 지정하면 됩니다.

mysql> SELECT GROUP_CONCAT(Value) FROM DemoTable;

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

+---------------------+
| GROUP_CONCAT(Value) |
+---------------------+
| 10,20,30,40,50      |
+---------------------+
1 row in set (0.00 sec)

결과를 보면 각 행에 나뉘어 있던 값들이 10,20,30,40,50처럼 쉼표로 구분된 단일 문자열로 출력된 것을 확인할 수 있습니다.

참고: 구분자 변경 및 정렬 옵션

GROUP_CONCAT()는 기본적으로 쉼표(,)를 구분자로 사용하지만, SEPARATOR 절을 이용해 원하는 구분자로 변경할 수도 있습니다. 또한 ORDER BY 절을 함께 사용하면 결과값을 정렬한 상태로 연결할 수 있습니다.

mysql> SELECT GROUP_CONCAT(Value ORDER BY Value ASC SEPARATOR '-') FROM DemoTable;

위 쿼리는 값을 오름차순으로 정렬한 후 하이픈(-)으로 연결하여 10-20-30-40-50 형태로 출력합니다. 이처럼 GROUP_CONCAT() 함수를 활용하면 목록 형태의 데이터를 다양한 방식으로 가공하여 표시할 수 있습니다.