Mysql 分页查询获取总数SQL_CALC_FOUND_ROWS

通常mysql获取查询记录总数我们使用如下语句:

$count = "SELECT COUNT(*) FROM users WHERE k='avs'";
$data = "SELECT id FROM goods WHERE k='avs' LIMIT 10";

但是记录总数总是需要单独的语句来查询,例如在分页查询程序中就有这样的问题,其实mysql可以在一次查询中获取记录和总数的,这就是要使用SQL_CALC_FOUND_ROWS参数,使用方法如下:

$data = "SELECT SQL_CALC_FOUND_ROWS goods WHERE k='avs' LIMIT 10";
$count = "SELECT FOUND_ROWS()";
$total = $count['total'];

这虽然是两个sql语句,但是确是查询一次数据库,效率明显提高了一半!其中SQL_CALC_FOUND_ROWS 告诉Mysql将sql所处理的行数记录下来,FOUND_ROWS() 则取到了这个纪录。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容