你的浏览器不支持canvas

做你害怕做的事情,然后你会发现,不过如此。

FOUND_ROWS的用法

时间: 作者: 黄运鑫

本文章属原创文章,未经作者许可,禁止转载,复制,下载,以及用作商业用途。原作者保留所有解释权。


使用COUNT()获取总数

  • 一般情况下在使用LIMIT分页时,还要使用COUNT()统计不分页的总条数来计算页数。
    比如:

    查询分页数据:SELECT * FROM sys_user WHERE id>10 LIMIT 0,10;
    查询总条数:SELECT COUNT(id) FROM sys_user WHERE id>10;

  • 这样查询的缺点是每次都需要执行两个相同的sql语句,如果WHERE条件很多,则影响查询效率。

使用FOUND_ROWS()获取总数

  • 想要知道如果没有LIMIT会返回多少行,但又不想再执行一次相同的查询语句。那么,在SELECT查询语句中加入SQL_CALC_FOUND_ROWS,然后执行FOUND_ROWS()就可以了。
  • 如下图:

image

  • 可以看到FOUND_ROWS()得到的结果和COUNT()一样,如果数据量大并且WHERE条件多时,FOUND_ROWS()的效率优势越明显。
  • 需要注意的是,语句中的SQL_CALC_FOUND_ROWS,如果没有SQL_CALC_FOUND_ROWSFOUND_ROWS()得到的是带有LIMIT分页的总数。

对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。