最近正在做一个显示消息的列表页,列表页中需要根据一个字段来分组显示。并且需要一个分页的效果。

大家也知道group by 后的数据是每一组一行记录,统计分组后的总的记录数又不能用count,所以SQL_CALC_FOUND_ROWS就派上用场了。

所谓SQL_CALC_FOUND_ROWS是指在执行带LIMIT的查询时,附带统计一下如果不加LIMIT的话将会输出多少条结果。

用法:

SELECT SQL_CALC_FOUND_ROWS * FROM `TA` LEFT JOIN `TB` on TA.id = TB.a_id GROUP BY TA.id ORDER BY ctime desc limit 0,20;

查询完毕后再执行:

SELECT FOUND_ROWS();

这个语句返回group by 后的总记录数,如下图:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAABICAIAAADtbSlhAAAFSUlEQVR4nO2ay47aSBRA70fFlsW/RAID/SFZBJoWiE+YVVYWMkLub8gOtRo0yLCdZJa0PcFkYtNZ1MNlbMDj9qOm6x5dKXY9r+uY9OvCK8OyLH693+/3+71lWX+n+fLxw6evwr9CB3z8Et9+/fQBkoi9/xnLsrLzETdM7HB+z1vP8i6WzKuUZBxRQkt8A+Icfn1NfEPcFl8j/yfxF7gh/rs0EPFNZ0GRWXzOR7gh/ps0EPFNZ0GRWXzOR0DxRXj/4v+SBiK+6SwoMovP+QjZ4i3kFk1ovU3+/C+KbyJtpD5QvKKgeEW5Lf4P5D2SS3x4i91uF51ef/yLUV9Ep9fdblftJz6v+J8Y9YVE4v/5iVFfSCX+hFFboHhFA8UrGhKJ948n/+gOdaH2Qp88HU/+8eSvJ1rcagzXJ5+0H51O4vbkrycanUWWSvbO+5Do5fRnR2FYIi6kdDWxWReg6/BhTw+GOFG4dTpscmd+SozvOrMuaA/uhazeGlKJj8gpd+aRfxRi3gcwhmt2u55owMcQ8cJgKp4t1SWmhaXE3rm4RWpfGomRzOitxObivvwVjBfRHlxina3sDvX+LOMRkk9XXsgvXjwd0RM5plvi5+5QJ6d8VTzVxo7+snh/3mfirya2nmhxYk4H+p2u6NgYrsVUEzHrZm73jsUHkR+4Qx06duQHLOw+6JOnQGgJIj9wOmAMV+IFi9VEo+PZUquJBmzNeLXURhkt6XZ3qIM2cnMkJsyy+2A6TyMDTIdmCP0ZHZze0R3qwhPFj1NyyCieo43cC+fLjzWH+CB6GhlAzrqo+PirON/rRmIRNz0z2ftHxtt9+gaQa/IdRuLVuXL7HsV7QeQF7kCHth15AQu7D/pkGQgtdJgxWEVe4LSBXLBYTTQ6XlzKHegApiOsltooXjO9Fx1pmQCmky8xnglvoReWCdrIFWctRwYAWznO/3pWbw2pxIdesBno0LZDL+CxaMNZS+jZPYCelTne7oE+Xqa7VmMNoG1e6E1MPAtxpJjM9cTIgJ61GmtsWcuEtr0Z6MZgld6Fr7Zoxyukb0sL+cWHy5EBIBwWUWiLveJZgzbaZC5FP1iZ4u1eYouL4sPlyODvx/XEqGmzx/IJPbsHZq/NX6/VWDMXgmCyFL/ga75v8dHJO4TegZ3yIRnPY/HH5cFzotcyhW8L7jesPb3UZqAD6OMlv45/OieNmXG2zmagA5iLPIl5dg9AnLtogzD3EC7vDT6ZD7NMYYrdE8eXGFF0kkX8yyHEeDmEL89jTR8vD+HLYfNZNz4/V7KLVOJ/SRCLNiRo2w2ksbw3wFxYJmj3f1a0hUzif/zCqC1kER+i+HojRPFqBopXNOoQv0NkpVrx1yto3/ibBKQw+/2+8Nzc4isr90QKU4f46so9kcLUI76q4i+kMCheUeoTDwAoXh7qEE8qO8lvv8st90RiHu/YXxha022iZzttnTfVJT7yjxH/y0eJVX8I4/GOu328A7h7JNfbaSvzXWhEvOgexVfA4x0VvZ22oDXd8nuRWsQHkR8kxANAKVV/SAbiJ541SCSeuEfxJbOdts60NyieVHaeWS+l3BMR2U5bWV/NmxQfekGYtF5O1R/CSf0Hn+iSQnyJ5Z4IZTttXdLemHhaQUvFl1vuiVDiH+Ip4lvQmHhS2QkApZd7IoWpR3xV5Z5IYWoRf7kGCMU3ReXir9fTvbH4CykMilcUFK8olYvPU+65R5qgWvGFV0ekBcUrCopXFBSvKCheUVC8oqB4RUHxioLiFQXFKwqKVxQUrygoXlFQvKKgeEVB8YqC4hXlNx6OZoBg5CNAAAAAAElFTkSuQmCC" alt="" />

FOUND_ROWS()得到的数字是临时的,执行下一条语句就会失效。所以保存在一个变量中为我们所用就OK了。

利用mysql中的SQL_CALC_FOUND_ROWS 来实现group by后的记录数统计的更多相关文章

  1. mysql中的with rollup得到group by的汇总信息

    使用mysql中的with rollup可以得到每个分组的汇总级别的数据: 表如下: CREATE TABLE `test3` (  `id` int(5) unsigned NOT NULL AUT ...

  2. group by 获取总记录数

    sql中有group buy 后如何获取总记录的条数,来生成分页 当然一般情况下我是不推荐这样的分页,如果你真的需要应该是你表结构设计有问题 1.适用于所有情况 $db = new PDO(DSN.. ...

  3. MySql中对Group by后的结果数进行Count

    今天在写MySQ的SQL语句的时候遇到了一个奇怪的问题 select count(*) from subsitealbum t1, photo t2,files t3 where t1.SourceA ...

  4. 利用MySQL中的乐观锁和悲观锁实现分布式锁

    背景 对于一些并发量不是很高的场景,使用MySQL的乐观锁实现会比较精简且巧妙. 下面就一个小例子,针对不加锁.乐观锁以及悲观锁这三种方式来实现. 主要是一个用户表,它有一个年龄的字段,然后并发地对其 ...

  5. 利用mysql中if函数排序

    格式:IF(Condition,A,B) 意义:当Condition为TRUE时,返回A:当Condition为FALSE时,返回B. 作用:作为条件语句使用. select if(`from_use ...

  6. MySQL中varchar类型在5.0.3后的变化

    1.mysql varchar类型变化:mysql 5.0.3 之前: 0--255字节 varchar(20)中的20表示字节数,如果存放urf8编码的话只能放6个汉字. MySQL 5.0.3 之 ...

  7. 关于MySQL中查询结果的count和from后的条件与where后的条件对比

    啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦 ...

  8. SQL分组多列统计(GROUP BY后按条件分列统计)

    as tjsl from fyxx group by zt,whbmbh end) as ybhsl from fyxx group by whbmbh 下面是摘自别人的博客 最近遇到一个问题,需要对 ...

  9. 【数据库】SQL分组多列统计(GROUP BY后按条件分列统计)

    select whbmbh ,zt,1 as tjsl from fyxx group by zt,whbmbh select whbmbh,sum(case zt when '有效' then 1 ...

随机推荐

  1. Intellij IDEA快速编写代码经验总结

    sout=System.out.println(); soutp=System.out.println(""); soutv=System.out.println("变量 ...

  2. 14.8.11 Physical Structure of an InnoDB Index InnoDB Index 的物理结构

    14.8.11 Physical Structure of an InnoDB Index InnoDB Index 的物理结构 所有的InnoDB indexes 是 B-trees Index r ...

  3. 无法自动调试 未能调试远程过程。这通常说明未在服务器上启用调试 WCF 托管在IIS上

    解决方案,把新建的网站的app.config修改下配置 <system.web> <!-- 设置 compilation debug="true" 可将调试符号插 ...

  4. Translate one

    打开一个新窗口并加载给定URL指定的文档. 导航应用程序窗口到指定的位置. 语法 var retval = window.open(url, name, features, replace); 参数 ...

  5. bzoj1028

    穷举水题 ..] of boolean;     q:..] of longint;     ans,count,jud:..] of longint;     x,i,j,n,m,tot,t,k:l ...

  6. 一起啃PRML - 1.1 Example: Polynomial Curve Fitting 多项式曲线拟合

    一起啃PRML - 1.1 Example: Polynomial Curve Fitting @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 前言: ...

  7. WordPress Woopra Analytics插件‘ofc_upload_image.php’任意PHP代码执行漏洞

    漏洞名称: WordPress Woopra Analytics插件‘ofc_upload_image.php’任意PHP代码执行漏洞 CNNVD编号: CNNVD-201310-195 发布时间: ...

  8. format 对整形的应用

    对于整型数,会在整型值的前面以0补之 Format('this is %.7d'[1234]);             输出是:this is 0001234]

  9. HDU-1390 Binary Numbers

    http://acm.hdu.edu.cn/showproblem.php?pid=1390 Binary Numbers Time Limit: 2000/1000 MS (Java/Others) ...

  10. 文本编辑器 CKEditor 用法

    最新文本编辑器,FCK升级版:CKEditor.NET CKEditor.NET.dll 版本:3.6.4.0 官方网址:http://ckeditor.com/   效果图:     配置web.c ...