我在使用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类的使用中。
有谁知道问题出在哪里?
答案 0 :(得分: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