技术库 > MySql

mysql found_rows 函数和count()函数比较

技术库:tec.5lulu.com

from:tec.5lulu.com

我们知道 在分页时一般都要先求出 文章的总数一半的做法如下  

<?php

    $sql 
"select count(*) from t";

    
$res mysql_query($sql);

    
$num mysql_result($res,0);

    
$sql =  "select topic,detail from t limit 5"
    
//使用count统计 
?> 

然而用mysql自带函数found_rows(); 

也可以快速求出总数 

比如说有段sql需要取出一张表的前10行,同时又需要取出符合条件的总数。这在某些翻页操作中很常见 

  1. SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
  2. WHERE id> 100 LIMIT 10;

在上一查询之后,你只需要用FOUND_ROWS()就能获得查询总数,这个数目是抛掉了LIMIT之后的结果数: 

  1. SELECT FOUND_ROWS();

其中第一个sql里面的

SQL_CALC_FOUND_ROWS

不可省略,它表示需要取得结果数,也是后面使用FOUND_ROWS()函数的铺垫
条件:1 必须以select sql_calc_found_rows 开头       2 这时found_rows() 为 没有limite 时的行数 
效率:1 当限制条件多是 count 的效率不是很高  所以用第二种方法 

            2 当没有where 等 限制时  用 count  效率很高

mysql found_rows 函数和count()函数比较


标签: mysql sql本文链接 http://tec.5lulu.com/detail/104pgn2obhnbm8990.html

我来评分 :6.1
0

转载注明:转自5lulu技术库

本站遵循:署名-非商业性使用-禁止演绎 3.0 共享协议

www.5lulu.com