如何使用 mySQL 查询按顺序连接多个字段?
How to join multiple fields in order using mySQL query?
我有一个 table,其中包含每种产品的尺码和价格。价格可能有多种尺寸。我想阅读尺寸和价格,用“:”分隔,而每个 size:price 由每个产品的逗号分隔。
如果我使用 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
最好的方法是什么?
您可以尝试将 group_concat
与 CONCAT
一起使用
架构(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 |
我有一个 table,其中包含每种产品的尺码和价格。价格可能有多种尺寸。我想阅读尺寸和价格,用“:”分隔,而每个 size:price 由每个产品的逗号分隔。
如果我使用 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
最好的方法是什么?
您可以尝试将 group_concat
与 CONCAT
架构(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 |