如何在单个字段或列中连接多个值? (MySQL的)

时间:2014-08-20 07:04:41

标签: mysql database group-by group-concat

我在MySQL中有一个表需要分组。我检索销售订单多个商品已订购

我当前的数据库查询如下所示: enter image description here

正如您所看到的,销售订单 255购买了2件商品,而销售订单 300购买了3件商品

问题:我需要在line_items字段中连接所有product_id及其价格或根据其order_id

我想要的输出是这样的: enter image description here

这是我使用的查询:

SELECT bsb.ORDER_ID AS order_id, bsb.PRODUCT_ID AS product_id, bsb.PRICE AS   product_price, '' AS line_items
FROM bsb
INNER JOIN bso ON bso.ID = bsb. ORDER_ID
WHERE bsb.ORDER_ID in(255, 300)

请帮助我......

1 个答案:

答案 0 :(得分:1)

您可以使用CONCAT内的GROUP_CONCAT来获得所需的结果集,但请记住GROUP_CONCAT有一个默认的1024个字符可以连接,但可以通过{{{}}来增加3}}手动

SELECT bsb.ORDER_ID AS order_id, 
GROUP_CONCAT(CONCAT('product_id: ',bsb.PRODUCT_ID,' | ',bsb.PRICE) SEPARATOR ';') AS line_items
FROM bsb
INNER JOIN bso ON bso.ID = bsb. ORDER_ID
WHERE bsb.ORDER_ID in(255, 300)
GROUP BY bsb.ORDER_ID