如何在MySQL中将列值用作列名

时间:2010-09-16 12:42:41

标签: sql mysql categories

我有一个看起来像这样的表:

|date      |category_id|val
|2010-08-09|1          |2
|2010-08-09|2          |45
|2010-08-10|3          |1500
|2010-08-10|2          |4

我想从此表中选择,每个类别ID都是一列,因此最终结果如下所示:

|date      |1    |2   |3 
|2010-08-09|2    |45  |NULL
|2010-08-10|NULL |4   |1500

使用单个SELECT语句或存储过程是否可以这样做,而不使用额外的表而事先不知道所有category_id值?

2 个答案:

答案 0 :(得分:1)

我认为您想使用MYSql sign来执行此操作。这是一个很好的链接,它与你想要做的事情非常相似:

http://en.wikibooks.org/wiki/MySQL/Pivot_table

答案 1 :(得分:0)

这是一个可能的解决方案。

http://www.futhark.ch/mysql/106.html