对数据进行排序会导致列而不是行

时间:2010-02-27 13:55:29

标签: mysql sql-order-by

我有一个像这样订购的MySQL表:

| user_id |   day   | time | job |    
|--------------------------------|    
|     1   | 2455251 |  08  | T23 |    
|     1   | 2455252 |  14  | T14 |    
|     1   | 2455253 |  22  | T27 |
|     2   | 2455251 |  06  | T16 |
|     2   | 2455252 |  12  | T64 |
|     2   | 2455253 |  20  | T38 |
  etc...

我希望得到我的请求的结果,如此架构:

user_id, day1, time1, job1, day2, time2, job2, day3, time3, job3

值可能是:

1, 2455251, 08, T23, 2455252, 14, T14, 2455253, 22, T27
2, 2455251, 06, T16, 2455252, 12, T64, 2455253, 20, T38
   etc...

我觉得无法提出请求......(我在数据库方面很差)。 你有好主意吗?你们有人曾经有过这样的经历吗?

1 个答案:

答案 0 :(得分:3)

您可以这样做,但不能使用SQL。

您正在谈论两个截然不同的想法:查询数据和显示数据。如果查询没有问题,您现在要做的就是在显示屏上工作。

显示数据库的软件是什么?如果你希望MySQL客户端能够为你管理这个,我担心你会失望的。如果是你编写的代码,你会有更好的运气。

您希望数据在哪里结束?在文件中?在显示器上?

更新:如果您正在使用Ajax查询数据库,那么页面的工作就是以您喜欢的方式对其进行格式化。

你可能仍然觉得这是一项具有挑战性的苦差事。 (它看起来也不会很好。)

很容易看出这将如何寻找一些行。但是如果查询返回数十呢呢?数百?你如何限制回来的行数?

  

如果我想从中获取此格式   服务器,这是因为我不想要我的   javascript花了太多时间   在客户端呈现结果。

听起来你对我的过早优化感到愧疚。

如果你从服务器收到那么多数据,我会说你遇到了更大的问题。让它在它所属的客户端上运行,然后查看您的性能是否可以接受。

这是另一个想法:我相信这种渲染运营商数据的方式看起来很糟糕,对运营商来说几乎没用。你真的想在这里解决什么问题? Ajax和jQuery UI,YUI等库提供了一些非常好的方法来呈现远远超出HTML可以做的数据。为什么不研究一些替代方法?

如果你可以在PHP中使用CSS,我建议使用CSS来定位你的数据。只需将行加载到DOM中,然后让CSS将其布局。