当列值为“n”时,如何从查询生成“n”行输出

时间:2015-12-20 15:08:39

标签: mysql

考虑一个Order表:

OrderId Item Qty 
O1      A1   5 
O2      A2   1 
O3      A3   3 

这些数据可以“爆炸”成单个单位记录,如:

OrderId itemId Qty 
O1      A1     1 
O1      A1     1 
O1      A1     1 
O1      A1     1 
O1      A1     1 
O2      A2     1 
O3      A3     1 
O3      A3     1 
O3      A3     1

1 个答案:

答案 0 :(得分:1)

这里最好的解决方案是使用GROUP_CONCATCONCAT_WS(与分隔符连接):

SELECT CONCAT('Order Id Item Qty ', 
    GROUP_CONCAT(
        CONCAT_WS(' ',OrderId,Item,Qty)
        SEPARATOR ' '
    )
)
FROM Order;

让我知道这是否有效或是否需要进一步改进!