将产品分组到一个单元格中 - Mysql
Group products into one cell - Mysql
我有这个 table 订单 :
+-----+--------------+
| id_order | products|
+----------+---------+
| 1 | product 1 |
+-----+--------------+
| 1 | product 49|
+-----+--------------+
| 1 | product 12|
+-----+--------------+
| 2 | Product 1 |
+-----+--------------+
| 3 | Product 50|
+-----+--------------+
| 4 | Product 42|
+-----+--------------+
在我的 SQL 查询中,我想像这样对产品进行分组:
+-----+-------------------------------------+
| id_order | products |
+----------+---------------------------------+
| 1 | product 1, product 49, product 12 |
+-----+--------------------------------------+
| 2 | Product 1 |
+-----+--------------------------------------+
| 3 | Product 50 |
+-----+--------------------------------------+
| 4 | Product 42 |
+-----+--------------------------------------+
如何将这些产品重新组合到一个单元格中?使用 GROUP_CONCAT ?
感谢您的帮助!
如果您的数据库可用,您可以尝试使用 STRING_AGG() 分组函数。
在这里查看:[
这里我使用的是GROUP_CONCAT
,这是Mysql中的内置方法,这只适用于Mysql服务器。
-- create
CREATE TABLE Products (
Id INTEGER,
product TEXT NOT NULL
);
-- insert
INSERT INTO Products VALUES (1, 'Product 1');
INSERT INTO Products VALUES (1, 'Product 2');
INSERT INTO Products VALUES (1, 'Product 3');
INSERT INTO Products VALUES (2, 'Product 9');
INSERT INTO Products VALUES (3, 'Product 10');
-- fetch
SELECT Id, GROUP_CONCAT(product) FROM Products GROUP BY Id
输出:
1|Product 1,Product 2,Product 3
2|Product 9
3|Product 10
我有这个 table 订单 :
+-----+--------------+
| id_order | products|
+----------+---------+
| 1 | product 1 |
+-----+--------------+
| 1 | product 49|
+-----+--------------+
| 1 | product 12|
+-----+--------------+
| 2 | Product 1 |
+-----+--------------+
| 3 | Product 50|
+-----+--------------+
| 4 | Product 42|
+-----+--------------+
在我的 SQL 查询中,我想像这样对产品进行分组:
+-----+-------------------------------------+
| id_order | products |
+----------+---------------------------------+
| 1 | product 1, product 49, product 12 |
+-----+--------------------------------------+
| 2 | Product 1 |
+-----+--------------------------------------+
| 3 | Product 50 |
+-----+--------------------------------------+
| 4 | Product 42 |
+-----+--------------------------------------+
如何将这些产品重新组合到一个单元格中?使用 GROUP_CONCAT ?
感谢您的帮助!
如果您的数据库可用,您可以尝试使用 STRING_AGG() 分组函数。
在这里查看:[这里我使用的是GROUP_CONCAT
,这是Mysql中的内置方法,这只适用于Mysql服务器。
-- create
CREATE TABLE Products (
Id INTEGER,
product TEXT NOT NULL
);
-- insert
INSERT INTO Products VALUES (1, 'Product 1');
INSERT INTO Products VALUES (1, 'Product 2');
INSERT INTO Products VALUES (1, 'Product 3');
INSERT INTO Products VALUES (2, 'Product 9');
INSERT INTO Products VALUES (3, 'Product 10');
-- fetch
SELECT Id, GROUP_CONCAT(product) FROM Products GROUP BY Id
输出:
1|Product 1,Product 2,Product 3
2|Product 9
3|Product 10