GROUP_CONCAT()으로 여러 행의 값을 하나의 문자열로 합치고, CONCAT()으로 각 값에 대괄호 등 장식을 추가할 수 있습니다.
테이블 생성 및 데이터 삽입
mysql> CREATE TABLE DemoTable1807 (
-> Id INT
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1807 VALUES(101); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO DemoTable1807 VALUES(102); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO DemoTable1807 VALUES(103); Query OK, 1 row affected (0.00 sec)
데이터 조회
mysql> SELECT * FROM DemoTable1807;
+------+ | Id | +------+ | 101 | | 102 | | 103 | +------+ 3 rows in set (0.00 sec)
각 ID를 [ ]로 감싸 콤마로 결합
mysql> SELECT GROUP_CONCAT(CONCAT('[',Id,']')) FROM DemoTable1807;
+----------------------------------+
| GROUP_CONCAT(CONCAT('[',Id,']')) |
+----------------------------------+
| [101],[102],[103] |
+----------------------------------+
1 row in set (0.00 sec)
옵션: GROUP_CONCAT(DISTINCT ...)로 중복 제거, ORDER BY Id로 정렬, SEPARATOR '; '로 구분자 변경. 최대 길이 제한(group_concat_max_len, 기본 1024) 주의.