কম্পিউটার টিউটোরিয়াল

MySQL에서 GROUP_CONCAT과 CONCAT, DISTINCT로 컬럼 값 따옴표로 감싸기

콤마로 구분된 문자열 컬럼의 각 값을 따옴표로 감싸고 중복 제거하려면 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로 변경 가능).

  1. MySQL-এ কলাম মান শাফল করা

  2. MySQL-এ তিনটি কলাম থেকে আলাদা মান বের করে একই কলামে প্রদর্শন করা

  3. MySQL CONCAT()으로 여러 컬럼 값을 텍스트와 합쳐 단일 컬럼으로 출력하기

  4. MySQL-এ একক কোয়ারি দিয়ে একটি কলামে একাধিক মান কিভাবে ইনসার্ট করবেন?