如何编写x行的SQL查询偏移量

时间:2016-01-09 08:43:10

标签: php mysql

我试图找出从表格中获取x行并按日期列排序的x行的最快方法。

我遇到的问题是我将查询中的行分页为每页10行的页面,但我只需要第n页。

例如,如果我只需要表格中的第4页,我需要选择所有行:

SELECT * FROM posts ORDER BY date

然后我需要使用PHP对数组进行分页并获取第4页(如果存在)。这不太理想,因为看到整张桌子似乎是浪费。

在这种情况下,有更好的方法来查询表吗?例如,如果我每页有10个帖子而我想要第4页,是否有办法来抵消查询,以便从第30行开始? (并按日期排序)。

2 个答案:

答案 0 :(得分:3)

您正在寻找LIMIT

SELECT * FROM posts ORDER BY date LIMIT 10, 20

其中10是偏移量,20是行数

答案 1 :(得分:2)

LIMIT就是答案。根据MySQL文档,

  

LIMIT子句可用于约束返回的行数   通过SELECT语句。 LIMIT需要一个或两个数字参数,   必须都是非负整数常量(使用时除外)   准备好的陈述)。

     

使用两个参数,第一个参数指定的偏移量   第一行返回,第二行指定最大数量   要返回的行。初始行的偏移量为0(不是1):

SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15