MySQL返回结果计数以及所有结果或检查查询是否有限

时间:2010-12-05 00:23:48

标签: sql mysql limit

我有一个返回大量结果的查询,所以我限制了返回的数量。但是我想知道是否有更多的结果然后我限制它们的数量,要么通过计数(*)获得所有结果,要么通过某种方式确定结果是否在与同一个查询相同的查询中受到限制返回结果!

2 个答案:

答案 0 :(得分:5)

在使用LIMIT的查询后使用FOUND_ROWS function

SELECT FOUND_ROWS();

来自文档:

  

SELECT语句可以包含LIMIT子句,以限制服务器返回到客户端的行数。在某些情况下,需要知道语句在没有LIMIT的情况下返回了多少行,但是没有再次运行语句。要获取此行计数,请在SELECT语句中包含SQL_CALC_FOUND_ROWS选项,然后再调用FOUND_ROWS()

答案 1 :(得分:4)

如果您不关心还有多少行,您也可以只添加1到限制。 假设您希望每页显示100行。所以你限制为101.如果你在任何时候收到101行,你知道至少还有一行。

显然,每次都必须丢弃额外的行,这会给应用程序代码增加一些额外的复杂性。