2010-07-14 128 views
1

如何执行SELECT语句并使其返回数据incolumns而不是行?检索列中的sql数据记录而不是行

FROM

+----+-------+--------+ 
| id | name | number | 
+----+-------+--------+ 
| 0 | test |  11 | 
| 1 | test2 |  12 | 
+----+-------+--------+ 

TO

+----+------+--------+----+-------+--------+ 
| id | name | number | id | name | number | 
+----+------+--------+----+-------+--------+ 
| 0 | test |  11 | 1 | test2 |  12 | 
+----+------+--------+----+-------+--------+ 
+0

重新设置问题的格式可以更容易回答 - 我无法解读您的来自/去。 – 2010-07-14 21:32:05

+1

你应该重新考虑你的算法,因为它不是可扩展的解决方案。你真的没有比正常选择循环更好的了。 – 2010-07-14 21:41:23

+0

Dobiatowski,我没有选择,因为我试图将数据馈送到一个巨大的数据网格中,这个数据网格在我要求数据的结构中。所以通过从sql中检索这样的数据,我可以轻松地将它提供给我的数据网格。 更多关于我这里的目标:http://stackoverflow.com/questions/3249771/feeding-dynamic-xml-data-to-dynamic-advanced-datagrid – user391986 2010-07-14 22:02:07

回答

1

pobably您正在寻找这样的功能:

mysql> SELECT student_name, 
    ->  GROUP_CONCAT(test_score) 
    ->  FROM student 
    ->  GROUP BY student_name; 

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

+0

太棒了!使用group_concat我实际上可以做我想做的事情。谢谢! – user391986 2010-07-16 13:34:45

+0

我很高兴:)问你是否想要更多的信息。 – 2010-07-17 08:25:25

+0

这是非常感谢,再次。但它的一个小问题是我阅读它将忽略的文档,并且不显示GROUP_CONCAT的空值,您是否知道一种防止此行为为空值的方法? – user391986 2010-07-19 14:58:15

2

查找 '数据透视表' 在你的数据库引擎的帮助文件。

0

你真的不想做,在SQL - 我甚至不能确定任何像样的DBMS会允许这样的事情!

+0

@Mike但用MySQL只能模拟数据透视。编辑:呃,迈克消失了。 – 2010-07-14 21:44:28