我有一个包含LIMIT子句的查询,该子句在总共100次中一次返回10个结果。我想要的也是计算结果总数(即100)。我是否必须在没有LIMIT子句的情况下进行第二次查询,然后计算返回的行数?我不想这样做,因为查询非常昂贵。
答案 0 :(得分:3)
select sql_calc_found_rows * from table .... limit x;
select found_rows();
查看手册
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
说:
如果您使用的是SELECT SQL_CALC_FOUND_ROWS,MySQL必须计算完整结果集中的行数。但是,这比不使用LIMIT再次运行查询要快,因为结果集不需要发送到客户端。
答案 1 :(得分:2)
在你的mysql上执行第二个查询:
SELECT FOUND_ROWS();