我试图找出从表格中获取x行并按日期列排序的x行的最快方法。
我遇到的问题是我将查询中的行分页为每页10行的页面,但我只需要第n页。
例如,如果我只需要表格中的第4页,我需要选择所有行:
SELECT * FROM posts ORDER BY date
然后我需要使用PHP对数组进行分页并获取第4页(如果存在)。这不太理想,因为看到整张桌子似乎是浪费。
在这种情况下,有更好的方法来查询表吗?例如,如果我每页有10个帖子而我想要第4页,是否有办法来抵消查询,以便从第30行开始? (并按日期排序)。
答案 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