我正在尝试使用MySQL LIMIT
和OFFSET
实现分页。在每个数据库查询,我想检查是否达到表中的最后一条记录。这方面最好的方法是什么?我应该对COUNT
使用其他查询,然后将其与OFFSET
进行比较吗?
答案 0 :(得分:3)
您可以使用sql_calc_found_rows
,这会让MySQL计算如果没有限制将返回多少行:
SELECT SQL_CALC_FOUND_ROWS ... FROM ... WHERE ... LIMIT x,y
^^^^^^^^^^^^^^^^^^^
然后你可以使用
SELECT found_rows();
检索该计数。它仍然是两个单独的查询调用,但是found_rows()调用非常便宜,因为繁重的工作已由主SELECT
完成。
您可以使用COUNT()
执行两个单独的查询,但之后您将复制工作并丢弃大部分内容。