MYSQL中統(tǒng)計查詢結(jié)果總行數(shù)的便捷方法省去count(*)
更新時間:2013年07月29日 18:11:51 作者:
查看手冊后發(fā)現(xiàn)SQL_CALC_FOUND_ROWS關(guān)鍵詞的作用是在查詢時統(tǒng)計滿足過濾條件后的結(jié)果的總數(shù)(不受 Limit 的限制)具體使用如下,感興趣的朋友可以學習下
MYSQL的關(guān)鍵詞 :
SQL_CALC_FOUND_ROWS
查看手冊后發(fā)現(xiàn)此關(guān)鍵詞的作用是在查詢時統(tǒng)計滿足過濾條件后的結(jié)果的總數(shù)(不受 Limit 的限制)
例如:
SELECT SQL_CALC_FOUND_ROWS tid FROM cdb_threads WHERE fid=14 LIMIT 1,10;
假設(shè)滿足條件的有1000條,這里返回10條。
立即使用
SELECT found_rows() AS rowcount;
則返回的 rowcount 為1000;
這樣節(jié)省了SELECT count(*) AS rowcount的重復查詢,可以節(jié)省比較可觀的時間。
以下是該放在在游味中的應用:
function mail_list_sent( $uid, $start ) {
// 注意SQL_CALC_FOUND_ROWS uid之間沒有逗號
$query = "SELECT SQL_CALC_FOUND_ROWS uid, real_name, current_city, msg_uid, sender_flag, ".
"msg_title, msg_content FROM " . TT_DBTABLEPRE . "mailbox as mb1, " . TT_DBTABLEPRE .
"user as usr1 WHERE mb1.sender_id=usr1.uid AND mb1.sender_id=$uid AND sender_flag > 0 LIMIT $start, " . TT_PAGESIZE;
$mails = $this->db->fetch_all( $query );
//查詢SELECT中滿足條件的行數(shù),與LIMIT子句無關(guān)
$max_count = $this->db->fetch_first( "SELECT found_rows() AS rowcount" );
$tmp['state_code'] = 200;
$tmp['info'] = "OK";
$tmp['list'] = $mails;
$data = json_encode( $tmp );
return $data;
}
SQL_CALC_FOUND_ROWS
查看手冊后發(fā)現(xiàn)此關(guān)鍵詞的作用是在查詢時統(tǒng)計滿足過濾條件后的結(jié)果的總數(shù)(不受 Limit 的限制)
例如:
復制代碼 代碼如下:
SELECT SQL_CALC_FOUND_ROWS tid FROM cdb_threads WHERE fid=14 LIMIT 1,10;
假設(shè)滿足條件的有1000條,這里返回10條。
立即使用
復制代碼 代碼如下:
SELECT found_rows() AS rowcount;
則返回的 rowcount 為1000;
這樣節(jié)省了SELECT count(*) AS rowcount的重復查詢,可以節(jié)省比較可觀的時間。
以下是該放在在游味中的應用:
復制代碼 代碼如下:
function mail_list_sent( $uid, $start ) {
// 注意SQL_CALC_FOUND_ROWS uid之間沒有逗號
$query = "SELECT SQL_CALC_FOUND_ROWS uid, real_name, current_city, msg_uid, sender_flag, ".
"msg_title, msg_content FROM " . TT_DBTABLEPRE . "mailbox as mb1, " . TT_DBTABLEPRE .
"user as usr1 WHERE mb1.sender_id=usr1.uid AND mb1.sender_id=$uid AND sender_flag > 0 LIMIT $start, " . TT_PAGESIZE;
$mails = $this->db->fetch_all( $query );
//查詢SELECT中滿足條件的行數(shù),與LIMIT子句無關(guān)
$max_count = $this->db->fetch_first( "SELECT found_rows() AS rowcount" );
$tmp['state_code'] = 200;
$tmp['info'] = "OK";
$tmp['list'] = $mails;
$data = json_encode( $tmp );
return $data;
}
相關(guān)文章
監(jiān)聽mysql表內(nèi)容變化 mysql開啟binlog
這篇文章主要給大家介紹了關(guān)于監(jiān)聽mysql表內(nèi)容變化,mysql開啟binlog的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-08-08MySQL中find_in_set()函數(shù)用法示例詳解
find_in_set這個是mysql的一個函數(shù),見得比較少,下面這篇文章主要給大家介紹了關(guān)于MySQL中find_in_set()函數(shù)用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09麒麟系統(tǒng)上安裝?MySQL?8.0.24的詳細步驟(避坑指南)
這篇文章主要介紹了麒麟系統(tǒng)上安裝MySQL8.0.24的詳細步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08解析mysql數(shù)據(jù)庫還原錯誤:(mysql Error Code: 1005 errno 121)
本篇文章是對mysql數(shù)據(jù)庫還原錯誤:(mysql Error Code: 1005 errno 121)的解決方法進行了詳細的分析介紹,需要的朋友參考下2013-06-06