1. 程式人生 > >mysql得到查詢結果的同時統計查詢結果的數目

mysql得到查詢結果的同時統計查詢結果的數目

               

做一些資料庫查詢,不僅希望得到要查詢的結果,還希望方便地統計一下查詢結果中有多少條記錄。我通常的做法是:
$q = "select * from $fromTable where $where limit $start,$pageSize";
$r = mysql_query($q);
$q = "select count(*) from $fromTable where $where";
$cnt = mysql_query($q);

當然可以用mysql_num_rows()或者mysql_affected_rows()來在第一次查詢後得到記錄數目,但是這兩個函式返回的都是查詢後得到的結果的數目,是受limit語句的影響的。很多情況下,需要知道這條查詢語句在沒有limit的情況下結果總數,比如分頁查詢。

mysql中本身支援一種更好的方法來達到上面的效果,那就是使用SQL_CALC_FOUND_ROWS和FOUND_ROWS()函式。見:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
應用舉例:

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
    -> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();
           

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow