有没有办法编写一个动态生成列的查询?

时间:2013-05-03 17:41:39

标签: mysql

我怀疑答案是“不”,但我想我会问,如果答案是“是”,那么我可以从我的代码中消除一大步,使其变得不那么难看。

我有一个看起来像这样的数据库:

user_id |  badge_id  |  value

现在,给定用户可以在此表中拥有不确定数量的行,因此一个用户可能有0行而另一个用户可能有多达100行(它永远不会超过100行)。

目前我有一个非常讨厌的电话,我有100个子选择“列”,我为给定用户选择一个特定的badge_id ...所以它看起来(伪代码,像这样)

select user_id as uid,
(select value from badges where badge_id = 1 and user_id = uid) as badge_1,
(select value from badges where badge_id = 2 and user_id = uid) as badge_2
etc etc 98 more times

此查询正在通过周围(Javascript)代码以编程方式组装为String,该代码首先执行初步查询以获取所有各种徽章ID。

我想知道是否有某种方法可以对所有徽章ID进行选择,然后在SQL本身内动态调用(不使用存储过程)。

欢迎所有想法

0 个答案:

没有答案