mysql获取group by的总记录行数另类方法

mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数。

mysql的SQL_CALC_FOUND_ROWS 使用 获取查询的行数 在很多分页的程序中都这样写:

代码如下

SELECT COUNT(*) from `table` WHERE ......;

查出符合条件的记录总数

代码如下

SELECT * FROM `table` WHERE ...... limit M,N;

查询当页要显示的数据 这样的语句可以改成:

代码如下

SELECT SQL_CALC_FOUND_ROWS * FROM `table` WHERE ...... limit M, N;

SELECT FOUND_ROWS();

因此可以配合mysql自带的SQL_CALC_FOUND_ROWS和FOUND_ROWS()函数可以实现。

代码如下

SELECT SQL_CALC_FOUND_ROWS t3.id, a,bunch,of,other,stuff FROM t1, t2, t3 WHERE(associate t1,t2,and t3 with each other) GROUPBY t3.id LIMIT 10,20SELECT FOUND_ROWS() as count;

使用以上两个语句即可完成满足group by的总记录行数。

另附:

group by 的简单使用方法:

代码如下

'SELECT column_id,count(*) as count FROM my_table group by column_id';

(0)

相关推荐

  • Java获取最后插入MySQL记录的自增ID值的3种方法

    方法一: 复制代码 代码如下: String sql = "INSERT INTO users (username,password,email) VALUES (?,?,?);";PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//传入参数:Statement.RETURN_GENERATED_KEYSpstmt.setSt

  • mysql获取group by总记录行数的方法

    本文实例讲述了mysql获取group by总记录行数的方法,分享给大家供大家参考.具体方法分析如下: 一般来说,mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数. mysql中可以使用SQL_CALC_FOUND_ROWS来获取查询的行数,在很多分页的程序中都这样写: 复制代码 代码如下: SELECT COUNT(*) from `table` WHERE ......; 查出符合条件的记录总数: 复制代码 代码如下: SELECT * FROM

  • MySQL获取所有分类的前N条记录

    比如有文章表 Article(Id,Category,InsertDate),现在要用SQL找出每种类型中时间最新的前N个数据组成的集合,一段不错的代码,留存备用 SELECT A1.* FROM Article AS A1 INNER JOIN (SELECT A.Category,A.InsertDate FROM Article AS A LEFT JOIN Article AS B ON A.Category = B.Category AND A.InsertDate <= B.Inse

  • PHP获取MySql新增记录ID值的3种方法

    一.使用语句: 复制代码 代码如下: mysql_query("select max(id) from t1",$link); 使用此方法得到的是 id最大的值,确为最后一个值,但当多链接线程时,这个最大的id并不一定是我们插入数据的自增id值,因此不适用于多线程. 二,使用函数:msyql_insert_id(); 在PHP中,经常需要把插入数据库中的id值取出来,而正好有这么一个函数: 复制代码 代码如下: <?php //执行插入数据库的语句 //-- $getID=mys

  • MYSQL中获取得最后一条记录的语句

    在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作为其他表的外键,形成"主从表结构",这是数据库设计中常见的用法.但是在具体生成id的时候,我们的操作顺序一般是:先在主表中插入记录,然后获得自动生成的id,以它为基础插入从表的记录.这里面有个困难,就是插入主表记录后,如何获得它对应的id.通常的做法,是通过"select max(id) from tablename"的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表加以

  • mysql获取group by的总记录行数另类方法

    mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数. mysql的SQL_CALC_FOUND_ROWS 使用 获取查询的行数 在很多分页的程序中都这样写: 代码如下 SELECT COUNT(*) from `table` WHERE ......; 查出符合条件的记录总数 代码如下 SELECT * FROM `table` WHERE ...... limit M,N; 查询当页要显示的数据 这样的语句可以改成: 代码如下 SELECT SQL_

  • php更新mysql后获取改变行数的方法

    本文实例讲述了php更新mysql后获取改变行数的方法.分享给大家供大家参考.具体分析如下: 一个php更新mysql后获取改变的行数,在php中提供mysql函数来获取最后执行查询所影响的记录数:mysql_affected_rows(), 返回最近一次与 连接句柄 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数.FOUND_ROWS() : select ROW_COUNT():update delete insert. 下面就是文章的主要内容描述,代码如下: 复

  • 基于vue v-for 多层循环嵌套获取行数的方法

    在做vue项目的时候难免会用到循环,可是但我们后台数据返回多条记录而且是多层嵌套关系的时候,我们需要获取当前第几次循环此时就会出现问题. 下面给大家介绍两种方式,第一种是基于数学公式:第一次循环*(第二次循环总长度)+1+第二次循环 可以获取当前第几次循环 第二种方法:是在方法中进行计算返回当前下标.废话不多说先看一下效果吧 具体代码如下: 测试数据json字符串: parentList: [{ childList: [{ index: 1, childName: "第一个节点" },

  • 批处理获取文件夹下面txt文件行数并添加到文件名后

    方法一: @echo off&setlocal enabledelayedexpansion for /f "delims=" %%a in ('dir /a-d/b/s *.txt') do ( for /f "tokens=3 delims=:" %%b in ('find /c /v "" "%%a"') do set n=%%b ren "%%a" "%%~na_!n: =!%%~

  • MySQL通过触发器解决数据库中表的行数限制详解及实例

    MySQL通过触发器解决数据库中表的行数限制详解及实例 最近项目一个需求是对操作日志的数量限制为10万条,超过十万条便删除最旧的那一条,保存数据库中日志数量不超过10万. 当时我的第一想法是通过触发器来做,便在数据库中执行了如下的SQL: delimiter $ create trigger limitLog before insert on OperationLog for each row begin if (select count(*) from OperationLog) > 1000

  • PHP获取文件行数的方法

    本文实例讲述了PHP获取文件行数的方法.分享给大家供大家参考.具体分析如下: 提供两种实现方法,虽然第二种简单易懂,但是第一种效率最好 第一种: <?php $file_path = 'xxx.txt'; //文件路径 $line = 0 ; //初始化行数 //打开文件 $fp = fopen($file_path , 'r') or die("open file failure!"); if($fp){ //获取文件的一行内容,注意:需要php5才支持该函数: while(s

  • 在.NET中取得代码行数的方法

    文章目的 介绍在.NET中取得代码行数的方法 代码 复制代码 代码如下: [STAThread] static void Main(string[] args) { ReportError("Yay!"); } static private void ReportError(string Message) { StackFrame CallStack = new StackFrame(1, true); Console.Write("Error: " + Messa

  • php使用PDO下exec()函数查询执行后受影响行数的方法

    本文实例讲述了php使用PDO下exec()函数查询执行后受影响行数的方法.分享给大家供大家参考,具体如下: exec()方法返回执行后受影响的行数. 语法:int PDO::exec(string statement) 提示: 参数statement是要执行的SQL语句.该方法返回执行查询时受影响的行数,通常用于insert,delete和update语句中.但不能用于select查询,返回查询结果. 为了验证这个提示,下面我分别对insert,delete,update,select 查询进

  • python计算文本文件行数的方法

    本文实例讲述了python计算文本文件行数的方法.分享给大家供大家参考.具体实现方法如下: filename = "somefile.txt" myfile = open(filename) lines = len(myfile.readlines()) print "There are %d lines in %s" % (lines, filename) 希望本文所述对大家的Python程序设计有所帮助.

随机推荐