SQL - 选择限制失败

时间:2014-02-28 15:52:00

标签: php mysql pagination limit

目前我的数据库中有12行。 在添加所有这些之间我删除了一些,因此ID列没有正确提升。

我正在运行以下查询,使用SQL $page创建页面是$_GET,这是数字(1,2,3等):

"SELECT  *
FROM    cms_guestbook
WHERE   moderated = 'Y'
ORDER BY  id DESC
LIMIT   ". (($page - 1) * 5) . ", " . (5 * $page) 

添加第1页,它正确显示,当我var_dump此查询显示时:LIMIT 0, 5。 添加第2页它无法正确显示。我看到7行(5-12),但我的var_dump说:LIMIT 5, 10

第3页也正确显示第10-12行。 var_dump也说:LIMIT 10, 15

有谁知道我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:3)

LIMIT需要2个参数 - OFFSET,行数。

在你的情况下,你会想......

LIMIT 0, 5
LIMIT 5, 5
LIMIT 10, 5

如果您一直希望返回5行,但每次都以不同的索引开始。

根据您的问题,将LIMIT子句更改为

LIMIT   ". (($page - 1) * 5) . ", 5"

查看MySQL Select & Limit details了解详情。