将重复行转换为新列MySql

时间:2015-02-26 09:56:42

标签: php mysql pivot

基本上我有一个MySql表

--------    -----------   --------
 cv_id       all_stages    amount
--------    -----------   --------
  12           S1           5
  13           S4           2
  13           S2           1  
  14           S1           3
  14           S3           2

我必须编写一个查询,以便基于cv_id,我需要一个条目。我需要生成更多的列。

我想要的是

--------    ---------  --------  --------  --------   -------
 cv_id       stage1     stage2    stage3    stage4     total
--------    ---------  --------  --------  --------   -------
  12           S1                                       5
-------------------------------------------------------------
  13                      S2                  S4        3
-------------------------------------------------------------
  14           S1                   S3                  5
-------------------------------------------------------------

如何根据 cv_id 并将stage列合计,将所有阶段排列到相应的amount列?

P.S - 我需要执行查询以生成新列

1 个答案:

答案 0 :(得分:2)

动态生成列不是一个好习惯。列表示模型的公共属性,最终会得到一个包含100列的表,每行只使用一列。你想要做的是,可以通过另一个将cv_id与阶段联系起来的表来实现。

例如

table cv_stage
Columns: cv_id, stage_name

然后,您可以随时查询具有特定阶段的cv_id或您可能需要的任何其他信息。