MySQL 分页。检查是否达到最后一条记录
MySQL pagination. Check if last record is reached
我正在尝试使用 LIMIT
和 OFFSET
以及 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()
执行两个单独的查询,但是您正在复制工作并丢弃其中的大部分。
我正在尝试使用 LIMIT
和 OFFSET
以及 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()
执行两个单独的查询,但是您正在复制工作并丢弃其中的大部分。