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

來源:互聯網
上載者:User

做一些資料庫查詢,不僅希望得到要查詢的結果,還希望方便地統計一下查詢結果中有多少條記錄。我通常的做法是:
$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();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.