MySQL分页。检查是否到达最后一条记录

时间:2015-03-27 15:10:12

标签: mysql sql pagination limit offset

我正在尝试使用MySQL LIMITOFFSET实现分页。在每个数据库查询,我想检查是否达到表中的最后一条记录。这方面最好的方法是什么?我应该对COUNT使用其他查询,然后将其与OFFSET进行比较吗?

1 个答案:

答案 0 :(得分:3)

您可以使用sql_calc_found_rows,这会让MySQL计算如果没有限制将返回多少行:

SELECT SQL_CALC_FOUND_ROWS ... FROM ... WHERE ... LIMIT x,y
       ^^^^^^^^^^^^^^^^^^^

然后你可以使用

SELECT found_rows();

检索该计数。它仍然是两个单独的查询调用,但是found_rows()调用非常便宜,因为繁重的工作已由主SELECT完成。

您可以使用COUNT()执行两个单独的查询,但之后您将复制工作并丢弃大部分内容。