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

   2015-08-01 0
核心提示: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';

 
标签: group 总记录 行数
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • MySQL 5.7版本sql_mode=only_full_group_by问题
    用到GROUP BY 语句查询时com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'col_user_6.a.START_TIME' which is not functionally dependent on colu
    02-10
  • mysql5.7配置文件修改sql_mode 重启无效解决方法。this is incompatible with sql_mode=only_full_group_by
    mysql5.7配置文件修改sql_mode 重启无效解决方
    whereis my.cnf找到配置路径:/etc/my.cnf找到[mysqld],在下面添加sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION重要:如果没有[mysqld],一定要先添加[mysqld]再在下
    02-10
  • mysql 8 查询报错(sql_mode=only_full_group_by)
    mysql 8 查询报错(sql_mode=only_full_group_by
    Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_
    02-10
  • MYSQL:SQL中Group By的使用
    MYSQL:SQL中Group By的使用
    SQL中Group By的使用 1、概述2、原始表3、简单Group By4、Group By 和 Order By5、Group By中Select指定的字段限制6、Group By All7、Group By与聚合函数8、Having与Where的区别9、Compute 和 Compute By1、概述“Group By”从字面意义上理解就是根据“By”
    02-10
  • MySQL 5.7.9版本sql_mode=only_full_group_by问题
    MySQL 5.7.9版本sql_mode=only_full_group_by问
    用到GROUP BY 语句查询时com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'col_user_6.a.START_TIME' which is not functionally dependent on colu
    02-10
  • oracle与mysql的group by语句
    之所以去纠那么细节的问题,是因为之前有过一个这样的场景:有个同学,给了一条数据库的语句给我,问,为啥这样子的语句在oracle语句下执行不了。1select * from xx where xxx is not null group by yy; 拿到这条语句的第一时间,其实,我也并没
    02-10
  • Mysql 分组查询出现'this is incompatibl
    由于Mysql自动开启了 only_full_group_by,所以若查询的字段不在group by里面,则分组报错。解决办法其一:mysql配置,关闭only_full_group_by,这种办法自行百度下面说第二种办法:除去group_by 以外的参数加上any_value(*) 如:SELECT type_id,any_value(`
    02-10
  • MySQL 5.7.9版本sql_mode=only_full_group_by
    这会导致select中只能出现group by后面出现的表的字段。其实如果使用其他表的字段,聚合函数对无法对应其他表的字段。建议放在子查询里。 如果想打破这个规则,可以设置sql_mode变量,将ONLY_FULL_GROUP_BY去掉即可。
    02-10
  • MySQL的SQL语句优化-group by语句的优化
    原文:http://bbs.landingbj.com/t-0-243202-1.html 默认情况下,MySQL排序所有GROUP BY col1, col2, ....,查询的方法如同在查询中指定ORDER BY col1, col2, ...。如果显式包括一个包含相同的列的ORDER BY子句,MySQL可以毫不减速地对它进行优化,
    02-09
  • sql server 怎么实现mysql中group_concat,列转
    create table tb(id int, value varchar(10))insert into tb values(1, 'aa') insert into tb values(1, 'bb') insert into tb values(2, 'aaa') insert into tb values(2, 'bbb') insert into tb values(2, 'ccc') goSEL
    02-09
点击排行