您当前的位置: 首页 > 数据库教程 > MySQL教程 > MYSQL中统计查询结果总行数的便捷方法省去count(*)

MYSQL中统计查询结果总行数的便捷方法省去count(*)

作者:不详 来源:网络 发布时间: 2014-07-17 13:23 点击:
查看手册后发现SQL_CALC_FOUND_ROWS关键词的作用是在查询时统计满足过滤条件后的结果的总数(不受 Limit 的限制)具体使用如下,感兴趣的朋友可以学习下 MYSQL的关键词 : SQL_CALC_FOUND_ROWS 查看手册后发现此关键词的作用是在查询时统计满足过滤条件后的结果的总数(

MYSQL中统计查询结果总行数的便捷方法省去count(*)

  查看手册后发现SQL_CALC_FOUND_ROWS关键词的作用是在查询时统计满足过滤条件后的结果的总数(不受 Limit 的限制)具体使用如下,感兴趣的朋友可以学习下

  MYSQL的关键词 :

  SQL_CALC_FOUND_ROWS

  查看手册后发现此关键词的作用是在查询时统计满足过滤条件后的结果的总数(不受 Limit 的限制)

  例如:

  复制代码 代码如下:

  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(*)"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4