SELECT LIMIT ORDER BY以自动递增的id中的任意列值开始

时间:2012-10-27 15:04:50

标签: mysql sql-order-by limit

我是一个中间人。我可以处理客户端/服务器端OK,但CSS和db使我神秘。

我甚至不确定如何构建这个问题。

在LAMP环境中,我想从视图返回LIMIT 20,按日期列排序。我无法弄清楚或放入正确的谷歌/堆栈术语的问题是我希望LIMIT以自动增量ID列中的任意值开始。

我可以通过将电话簿返回到PHP并从那里开始来制作它的哈希值,但我不知道什么是最有效的:将它放在数据库或服务器端。我应该制作MySQL(如果它甚至可能)从ORDERED日期产生的某个点开始吐出20个值但是基于自动增量id,或者我应该将所有内容输出到服务器端,找到数组中的点我正在寻找,并返回那个和随后的19个值?

如果从数据库返回它更有效率,有人可以帮我选择SELECT吗?

像往常一样,向MySQL众神祈祷,以免我在数据库绝望中无知。

非常感谢提前!

1 个答案:

答案 0 :(得分:1)

您需要使用

SELECT * FROM table WHERE id > desired_id ORDER BY date DESC LIMIT 20

其中desired_id是自动增量ID列中您想要的任意值。

这意味着,该数据库将找到id高于desired_id的所有值,并按降序排序,并且只返回前20行。