最近发现了一个在MYSQL的函数:SQL_CALC_FOUND_ROWS 。多方了解,总算搞懂。
在Mysql中执行 :
SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;
再执行:
SELECT FOUND_ROWS();
第二个 SELECT返回一个数字,指示了在没有LIMIT子句的情况下,第一个SELECT返回了多少行 (若上述的 SELECT语句不包括 SQL_CALC_FOUND_ROWS 选项,则使用LIMIT 和不使用时,FOUND_ROWS() 可能会返回不同的结果)。 也就是这样只要执行一次较耗时的复杂查询可以同时得到与不带limit同样的记录条数 这两个函数是Mysql信息函数。
SELECT FOUND_ROWS();返回的是一定是最近的执行的查询的结果。
这两个函数一般用在分页当中,这样可避免SELECT COUNT(*) WHERE()需要查询两次数据库的情况。