Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 해당 중복 ID 값을 기반으로 열을 연결하는 방법은 무엇입니까? 슬래시로 구분된 동일한 열에 중복 값 표시

<시간/>

이를 위해 GROUP_CONCAT()을 사용할 수 있습니다.

먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable764 (
   ProductId int,
   ProductPrice int
);
Query OK, 0 rows affected (0.56 sec)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable764 values(101,10000);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable764 values(102,1090);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable764 values(103,4000);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable764 values(102,3450);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable764 values(101,20000);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable764 values(104,50000);
Query OK, 1 row affected (0.12 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select *from DemoTable764;

그러면 다음과 같은 출력이 생성됩니다. -

+-----------+--------------+
| ProductId | ProductPrice |
+-----------+--------------+
|       101 |        10000 |
|       102 |         1090 |
|       103 |         4000 |
|       102 |         3450 |
|       101 |        20000 |
|       104 |        50000 |
+-----------+--------------+
6 rows in set (0.00 sec)

다음은 해당 중복 ID 값으로 열을 연결하는 쿼리입니다. -

mysql> select ProductId,
   group_concat(ProductPrice SEPARATOR '/') AS ProductPrice from DemoTable764
   group by ProductId;

그러면 다음과 같은 출력이 생성됩니다. -

+-----------+---------------+
| ProductId | ProductPrice  |
+-----------+---------------+
|       101 | 10000/20000   |
|       102 | 1090/3450     |
|       103 | 4000          |
|       104 | 50000         |
+-----------+---------------+
4 rows in set (0.00 sec)