SELECT SQL_CALC_FOUND_ROWS tid FROM cdb_threads WHERE fid=14 LIMIT 1,10;
假設滿足條件的有1000條,這里返回10條。 立即使用
復制代碼 代碼如下:
SELECT found_rows() AS rowcount;
則返回的 rowcount 為1000; 這樣節省了SELECT count(*) AS rowcount的重復查詢,可以節省比較可觀的時間。
以下是該放在在游味中的應用:
復制代碼 代碼如下:
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中滿足條件的行數,與LIMIT子句無關 $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; }
您可能感興趣的文章:
Mysql中的count()與sum()區別詳細介紹mySQL count多個表的數據實例詳解關于mysql innodb count(*)速度慢的解決辦法MySQL中distinct和count(*)的使用方法比較詳細解讀MySQL中COUNT函數的用法mysql_num_rows VS COUNT 效率問題分析關于mysql中innodb的count優化問題分享淺析一個MYSQL語法(在查詢中使用count)的兼容性問題mysql中count(), group by, order by使用詳解MySQL中count(*)、count(1)和count(col)的區別匯總