콤마로 구분된 문자열 컬럼의 각 값을 따옴표로 감싸고 중복 제거하려면 REPLACE(), CONCAT(), GROUP_CONCAT(DISTINCT ...)을 조합합니다.
테이블 생성 및 데이터 삽입
mysql> CREATE TABLE DemoTable1799 (
-> EmployeeId VARCHAR(20)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1799 VALUES('101,102,103,104');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1799 VALUES('106,109');
Query OK, 1 row affected (0.00 sec)
데이터 조회
mysql> SELECT * FROM DemoTable1799;
+-----------------+ | EmployeeId | +-----------------+ | 101,102,103,104 | | 106,109 | +-----------------+ 2 rows in set (0.00 sec)
각 ID를 따옴표로 감싸고 중복 제거해 결합
mysql> SELECT GROUP_CONCAT(DISTINCT CONCAT(''', REPLACE(EmployeeId, ',', '',''), ''')) AS Output
-> FROM DemoTable1799;
+-------------------------------------+ | Output | +-------------------------------------+ | '101','102','103','104','106','109' | +-------------------------------------+ 1 row in set (0.00 sec)
해설: REPLACE(EmployeeId, ',', '','')로 콤마를 ','로 치환, CONCAT(''', ..., ''')로 양끝에 따옴표 추가, GROUP_CONCAT(DISTINCT ...)로 전체 행 합치며 중복 제거. GROUP_CONCAT 기본 최대 길이는 1024자(group_concat_max_len로 변경 가능).