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

MySQL pagination. Check if last record is reached

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

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

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

那么你可以使用

SELECT found_rows();

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

完成

您可以使用 COUNT() 执行两个单独的查询,但是您正在复制工作并丢弃其中的大部分。