服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|

服务器之家 - 数据库 - Mysql - MYSQL中统计查询结果总行数的便捷方法省去count(*)

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

2020-01-07 15:56MYSQL教程网 Mysql

查看手册后发现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; 

延伸 · 阅读

精彩推荐
  • MysqlMySQL前缀索引导致的慢查询分析总结

    MySQL前缀索引导致的慢查询分析总结

    前缀索引,并不是一个万能药,他的确可以帮助我们对一个写过长的字段上建立索引。但也会导致排序(order by ,group by)查询上都是无法使用前缀索引的...

    MYSQL教程网4522019-12-25
  • MysqlMySQL性能设置

    MySQL性能设置

    网站访问量越来越大,MySQL自然成为瓶颈,因此最近我一直在研究 MySQL 的优化,第一步自然想到的是 MySQL 系统参数的优化 ...

    mysql技术网4112019-10-16
  • Mysql将MySQL数据库移植为PostgreSQL

    将MySQL数据库移植为PostgreSQL

    PostgreSQL 作为功能最强劲的开源 OO 数据库,仿佛一直不为国内用户所熟识。而我个人也仅是因为工作的缘故接触到这款超经典的数据库,并深为之折服。...

    mysql教程网4752019-10-31
  • MysqlMySQL数据迁移使用MySQLdump命令

    MySQL数据迁移使用MySQLdump命令

    今天小编就为大家分享一篇关于MySQL数据迁移使用MySQLdump命令,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编...

    Tangzongyu1233782019-06-19
  • MysqlMYSQL代码 定期备份Mysql数据库

    MYSQL代码 定期备份Mysql数据库

    Mysql自动备份脚本供大家参考,实现了定期备份Mysql数据库,并且可以选在在每周的一天做指定目录下文件的全面备份,备份文件自动上传到你指定的FTP上,...

    mysql教程网4772019-10-26
  • Mysql解析:内联,左外联,右外联,全连接,交叉连接的区别

    解析:内联,左外联,右外联,全连接,交叉连接的区别

    本篇文章是对内联,左外联,右外联,全连接,交叉连接的区别进行了详细的分析介绍,需要的朋友参考下 ...

    MYSQL教程网2072020-01-06
  • MysqlMySql 安装时的1045错误

    MySql 安装时的1045错误

    MySql安装到最后一步的时候,出现1045的错误有两种解决办法。 ...

    mysql教程网2992019-11-11
  • Mysql深入mysql基础知识的详解

    深入mysql基础知识的详解

    本篇文章是对mysql基础知识进行了详细的分析介绍,需要的朋友参考下 ...

    MYSQL教程网4252019-12-26