如何使用mySQL查询按顺序连接多个字段?

问题描述 投票:1回答:1

我有一张表,其中包含每种产品的尺寸和价格。价格可能有多种尺寸。我希望读取尺寸和价格,并将“:”分开,每个尺寸:每个产品的价格用逗号分隔。

如果我使用SQL查询读取它,我得到以下内容。

PRODUCT_ID     SIZE     PRICE
001            L        20 
001            S        15
002            M        10
002            L        20
002            S        5

我想阅读以下内容:

PRODUCT        SIZE_PRICE
001            L:20,S:15
002            M:10,L:20,S:5

做这个的最好方式是什么 ?

mysql sql concat
1个回答
2
投票

您可以尝试使用group_concatCONCAT

架构(MySQL v5.7)

CREATE TABLE T(
   PRODUCT_ID varchar(50),
   SIZE varchar(50),
   PRICE int
);


INSERT INTO T VALUES ('001','L',20); 
INSERT INTO T VALUES ('001','S',15);
INSERT INTO T VALUES ('002','M',10);
INSERT INTO T VALUES ('002','L',20);
INSERT INTO T VALUES ('002','S',5);

查询#1

SELECT PRODUCT_ID,
      GROUP_CONCAT(CONCAT(SIZE,':',PRICE)) 'SIZE_PRICE'
FROM T
GROUP BY PRODUCT_ID;

| PRODUCT_ID | SIZE_PRICE    |
| ---------- | ------------- |
| 001        | L:20,S:15     |
| 002        | M:10,L:20,S:5 |

View on DB Fiddle

© www.soinside.com 2019 - 2024. All rights reserved.