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

 更新时间:2013年07月29日 18:11:51   作者:  
查看手册后发现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中的超时时间设置方式

    Mysql中的超时时间设置方式

    这篇文章主要介绍了Mysql中的超时时间设置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • MySQL数据库安全设置与注意事项小结

    MySQL数据库安全设置与注意事项小结

    现在很多朋友使用mysql数据库,为了安全考虑我们就需要考虑到mysql的安全问题,例如需要将mysql以普通用户权限运行,就算出问题了有了root也不能控制系统
    2013-08-08
  • mysql分区表的增删改查的实现示例

    mysql分区表的增删改查的实现示例

    增删查改在数据库中是很常见的操作,本文主要介绍了mysql分区表的增删改查的实现示例,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • mysql导出表的字段和相关属性的步骤方法

    mysql导出表的字段和相关属性的步骤方法

    在本篇文章里小编给大家分享了关于mysql导出表的字段和相关属性的步骤方法,有需要的朋友们跟着学习下。
    2019-01-01
  • mysql 教程 存储过程

    mysql 教程 存储过程

    最近用mysql + asp.net来写网站,既然mysql已经支持存储过程了,那么像分页这么常用的东西,当然要用存储过程啦
    2009-06-06
  • 详解mysql基本操作详细(二)

    详解mysql基本操作详细(二)

    这篇文章主要介绍了mysql基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • mysql提示got timeout reading communication packets的解决方法

    mysql提示got timeout reading communication packets的解决方法

    今天发现mysql错误日志中出现got timeout reading communication packets,一般情况因为部分页面生成有问题导致,这里简单分享一下解决方法
    2019-05-05
  • 解析MySQL中DELETE语句中别名的使用

    解析MySQL中DELETE语句中别名的使用

    这篇文章主要为大家介绍了MySQL中DELETE语句中别名的使用解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • MySQL数据文件存储位置的查看方法

    MySQL数据文件存储位置的查看方法

    这篇文章主要为大家详细介绍了MySQL数据文件存储位置的查看方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • MySQL 5.5.x my.cnf参数配置优化详解

    MySQL 5.5.x my.cnf参数配置优化详解

    今天正好看到一篇有关my.cnf优化的总结,虽然还没经过我自己的实践检验,但从文章内容来说已经写的很详细了(当然,事实上下面这篇文章很多地方只是翻译了my.cnf原始配置文件的说明,呵呵),所以特地转载收藏一下
    2015-08-08

最新评论