Mysql 分页查询获取总数SQL_CALC_FOUND_ROWS

40次阅读

共计 405 个字符,预计需要花费 2 分钟才能阅读完成。

通常 mysql 获取查询记录总数我们使用如下语句:
$count = “SELECT COUNT(*) FROM users WHERE k=v”;
$data = “SELECT id FROM goods WHERE k=v LIMIT 10”;
但是记录总数总是需要单独的语句来查询,例如在分页查询程序中就有这样的问题,其实 mysql 可以在一次查询中获取记录和总数的,这就是要使用 SQL_CALC_FOUND_ROWS 参数,使用方法如下:
$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() 则取到了这个纪录。

正文完
 0