Mysql 分页查询获取总数SQL_CALC_FOUND_ROWS

一般mysql获取查询记录总数咱们使用以下语句:php

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

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

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

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

相关文章
相关标签/搜索