如何循环表行并获取标头-MySQL上的值对

时间:2019-01-15 08:50:52

标签: mysql

例如,我得到了这样的表:

ID | GroupID | Fee | Discount
-----------------------------
1  |   20    | 60  | 15
2  |   21    | 55  | 42

我想循环每一行并获取标头-像这样的值对: 从第1行开始:GroupID-20,费用-60,折扣-15 从第2行开始:GroupID-21,费用-55,折扣-42

所以基本上,这是我的旧表,我想将其转换为新表。新的将如下所示:

ID | GroupID |   Type   | Value
-------------------------------
1  |   20    |   Fee    |  60
2  |   20    | Discount |  15
3  |   21    |   Fee    |  55
4  |   21    | Discount |  42

1 个答案:

答案 0 :(得分:0)

SELECT 
t.ID,
t.GroupID,
a.Type,
IF(a.Type = 'Fee', Fee, Discount) AS `Value`
FROM t
CROSS JOIN (SELECT 'Fee' AS Type UNION SELECT 'Discount') a
ORDER BY ID, GroupID;
  • 查看其实时运行的here