我有一个返回大量结果的查询,所以我限制了返回的数量.但是我想知道是否有更多的结果然后我限制它们的数量,要么通过计数(*)获得所有结果,要么通过某种方式确定结果是否在与同一个查询相同的查询中受到限制返回结果!
在使用LIMIT的查询后使用FOUND_ROWS函数:
SELECT FOUND_ROWS();
Run Code Online (Sandbox Code Playgroud)
从文档:
SELECT语句可以包含LIMIT子句,以限制服务器返回到客户端的行数.在某些情况下,需要知道语句在没有LIMIT的情况下返回了多少行,但是没有再次运行语句.要获取此行计数,请
SQL_CALC_FOUND_ROWS在SELECT语句中包含一个选项,然后在以后调用FOUND_ROWS():
如果您不关心还有多少行,您也可以只在限制上加 1。假设您希望每页显示 100 行。所以你限制了 101。如果你在任何时候收到 101 行,你就知道至少还有一页。
显然,您每次都必须丢弃额外的行,这给应用程序代码增加了一些额外的复杂性。