我有一个MySQL数据库查询,它从一个MySQL检索有序的项目,脚本返回products及其quantity。在每个数量下面,出现产品标识。
我的当前查询的输出如下所示:

问题:一行带有蓝色高亮显示,表示成本必须位于所订购的所有产品之下
我想要实现的最终输出必须如下所示:

我使用的代码是:
SET @origin=0;
SELECT order_item_id, meta_key, meta_value, row, origin FROM (
SELECT bsb.ID AS meta_id, bsb.ORDER_ID AS order_item_id, '_qty' AS meta_key, bsb.QUANTITY AS meta_value, @a:= @a + 1 AS row, @origin:= @origin +1 AS origin
FROM bsb,(SELECT @a:=0) t
WHERE bsb.ORDER_ID IN (300)
UNION
SELECT bsb.ID AS meta_id, bsb.ORDER_ID AS order_item_id, '_product_id' AS meta_key, bsb.PRODUCT_ID AS meta_value, @b:= @b + 1 AS row, @origin:= @origin +1 AS origin
FROM bsb, (SELECT @b:=0) t
WHERE bsb.ORDER_ID IN (300)
UNION
SELECT '' AS meta_id, bso.ID AS order_item_id, 'cost' AS meta_key, 0 AS meta_value, @j:= @j + 1 AS row, @origin:= @origin +1 AS origin
FROM bso, (SELECT @j:=1) t
WHERE bso.ID IN (300)
) sales_order_meta ORDER BY row, origin 请帮帮我..。
发布于 2014-08-19 06:19:31
将ORDER BY子句更改为:
ORDER BY order_item_id, meta_key = 'cost', row, originmeta_key = 'cost'用于cost行,0用于所有其他行。
https://stackoverflow.com/questions/25376757
复制相似问题