使用limit查询的同时取得总的记录数:SQL_CALC_FOUND_ROWS和FOUND_ROWS()

Posted jorzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用limit查询的同时取得总的记录数:SQL_CALC_FOUND_ROWS和FOUND_ROWS()相关的知识,希望对你有一定的参考价值。

通常我们都用如下的sql来进行列表

SELECT COUNT(*) FROM users WHERE name LIKE ‘a%’;
SELECT name, email FROM users WHERE name LIKE ‘a%’ LIMIT 10;

    但是从mysql4.0.0开始,我们可以选择使用另外一个方式:

SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE ‘a%’ LIMIT 10;
SELECT FOUND_ROWS();

    其中SQL_CALC_FOUND_ROWS 告诉MySQL将sql所处理的行数记录下来,FOUND_ROWS() 则取到了这个纪录。

    虽然也是两个语句,但是只执行了一次主查询,所以效率比原来要高很多。

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;

mysql> SELECT FOUND_ROWS();

 



以上是关于使用limit查询的同时取得总的记录数:SQL_CALC_FOUND_ROWS和FOUND_ROWS()的主要内容,如果未能解决你的问题,请参考以下文章

查询数据:limit

mysql同时使用order by和limit查询时的一个严重隐患 -- 丢失数据

分页查询知识点

黑马day13 分页思路&实现

BigQuery SQL如何在使用LIMIT时获取总数

MongoDB学习笔记