【发布时间】:2012-06-18 17:51:55
【问题描述】:
我正在用 PHP 和 MySQL 数据库制作一个简单的留言板。我使用“LIMIT”操作将消息限制为每页 20 条。
我的 URL 示例是:http://www.example.com/?page=1
如果未指定页面,则默认为 1。正如我之前提到的,每页有 20 个限制,但是如果超出可能的 30 个并且我希望查看第 2 页,我只会得到10 个结果。在这种情况下,我的查询的 LIMIT 部分类似于 LIMIT 20,40 - 在这种情况下如何确保返回 20?
我希望尽可能多地将其保留在 MySQL 端。
编辑: 澄清一下,如果我在第 2 页,我将获取第 20-30 行,但这只有 10 行,所以我希望选择 10-30。
编辑: 我目前正在使用以下查询:
我的查询:
SELECT MOD(COUNT(`ID`),20) AS lmt WHERE `threadID`=2;
SELECT * FROM `msg_messages` WHERE `threadID`=2 LIMIT 20-(20-lmt) , 40-(20-lmt) ;
有 30 条记录匹配。
【问题讨论】:
-
您确定要这样做吗?这是非标准的,老实说,这听起来非常令人困惑。为什么需要这个?
-
你能颠倒顺序,取前 20 个吗?
-
在链接传递开始和结束参数
http://www.example.com/?page=1,start=20,end=40 -
如果我理解这个问题,您基本上是想从结果的结束而不是开始开始分页?因此,如果您总共有 30 个结果,每页 20 个,那么第 1 页将有 10 个结果,而第 2 页将有 20 个结果?这个问题可能会更清楚。