将数据列转换为mySQl中的行

时间:2011-12-19 19:40:58

标签: mysql transform pivot

我一直在寻找和阅读,并没有完全满足我的需要。

name,stuff1, stuff2, skill1, skill2, skill3 ... skill200

表中有196行。技能值范围为0-4。

我知道,没有正常化。现在它需要保持这种状态。

我需要返回

       Name1,       name2,       name3,       ...
skill1 skill1value, Skill1value, skill1value, ...
skill2 skill2value, skill2value, skill2value, ...

每个名字只有一行。

换句话说,每个名称都有一个列,每个技能有一行(该技能的值)和where子句 - 其中stuff ='something'。我不需要做所有技能,只需要大约200个左右的10-15列。

这是mySQL。只有196行

感谢提前

1 个答案:

答案 0 :(得分:0)

不幸的是,您需要为自己所需的每个专栏/技能自己加入此表。不漂亮,但我认为这是MySQL的唯一方法。类似的东西:

select s1.skill1, s2.skill2, s3.skill3...
  from skills s1
  join skills s2 using (name)
  join skills s3 using (name)
 ....