【发布时间】:2012-01-12 09:18:50
【问题描述】:
假设我想从名为messages 的表中检索 100 条记录,我想通过以下方式获取它们:
1st message
100th message
2nd message
99th message
3rd message
98th message
(...)
有没有办法有效地做到这一点?什么是适当的查询? 或者我应该查询选择前 50 个,查询选择最后 50 个然后合并结果?
【问题讨论】:
-
这是一种情况,我可能会进行两个查询并将它们合并到应用程序代码中。它可能可以通过创建行号并使用非常聪明的条件
ORDER BY在一个查询中完成,但在应用程序代码中更容易完成。 -
是的,我也是这么想的......也许用两个不同的查询来做这件事并在代码中合并它们的结果会更容易/更有效
-
我肯定会等着看这里是否有人能提出一个巧妙的解决方案。这里有一些非常聪明的人。
-
你知道要提前检索多少条记录吗?总是 100 吗?
-
请包含 ORDER 逻辑,总是按 add_date desc 排序?
标签: mysql sql database select merge