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

2021-05-22 16:37:18 字數 819 閱讀 5458

做一些資料庫查詢,不僅希望得到要查詢的結果,還希望方便地統計一下查詢結果中有多少條記錄。我通常的做法是:

$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();

Mysql查詢結果亂碼

檢視mysql資料庫伺服器和資料庫字符集 檢視表中所有列的字符集 檢視表的字符集 檢視mysql所支援的字符集 修改全域性字符集 set character set connection utf8 set character set database utf8 set character set r...

MYSQL 動態查詢結果

今天遇到乙個需求需要把這樣的 轉化為這樣的 第一張圖是從臨時表來的,也就是第二個圖的列名是不固定的,如果列名是固定的就是乙個簡單的行轉列,但是現在列名不固定,我們必須使用動態的行轉列,完成這個裝換我們需要使用兩個知識點 1.使用動態語句執行sql set sql concat create temp...

Mysql合併查詢結果

本文通過例項介紹mysql中的group concat函式的使用方法,比如select group concat name mysql中group concat函式 完整的語法如下 group concat distinct 要連線的字段 order by asc desc 排序字段 separat...