-1

我在使用 SQL LIMIT 语句时遇到问题。我有 21 条记录存储在数据库中,我想分段获取结果。我写了这个查询:

SELECT * FROM table JOIN another_table ON XXX = YYY WHERE XXX = ? ORDER BY col DESC LIMIT ?, ?

这是我使用此值时得到的行数:

LIMIT:  0 .. 10  --->  num of rows 10     -> Correct
LIMIT: 10 .. 20  --->  num of rows 11     -> Incorrect
LIMIT: 20 .. 30  --->  num of rows 0      -> Incorrect

代码用于 php 函数和数据库操作,我使用 PDOStatement 类,但此错误也体现在使用 MySQLi 类中。

有谁知道问题出在哪里?

4

1 回答 1

5

当你说:

LIMIT X, Y

你说X的是偏移量,Y是计数。你想要的是:

LIMIT 0, 10
LIMIT 10, 10
LIMIT 20, 10

或者,使用OFFSET关键字并使用:

LIMIT 10 OFFSET 0
LIMIT 10 OFFSET 10
LIMIT 10 OFFSET 20
于 2014-09-09T20:40:25.570 回答