我有一个 MySQL 数据库查询,用于从 sales_order_table 中检索订购的商品。该脚本返回产品及其数量。每个数量下方都会显示产品 ID。
我的当前查询的输出如下所示:
问题:带有蓝色突出显示的成本行必须位于所有订购产品的下方
我想要实现的最终输出必须如下所示:
我使用的代码是这样的:
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
请帮助我..
最佳答案
将 ORDER BY
子句更改为:
ORDER BY order_item_id, meta_key = 'cost', row, origin
meta_key = 'cost'
对于 cost
行为 1
,对于所有其他行为 0
。
关于mysql - 如何定位查询的最后一行以显示在结果下方? (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25376757/