C语言 c++ php mysql nginx linux lnmp lamp lanmp memcache redis 面试 笔记 ppt 设计模式 问题 远程连接

group by 获取总记录数

 

sql中有group buy 后如何获取总记录的条数,来生成分页

当然一般情况下我是不推荐这样的分页,如果你真的需要应该是你表结构设计有问题

1、适用于所有情况

$db = new PDO(DSN...); 
$db->setAttribute(array(PDO::MYSQL_USE_BUFFERED_QUERY=>TRUE)); #必须开启查询缓存
$rs  = $db->query('SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 5,15');  #SQL_CALC_FOUND_ROWS  会忽略limit
$rs1 = $db->query('SELECT FOUND_ROWS()');
$rowCount = (int) $rs1->fetchColumn();

 

2、适用于没有having的条件情况

select count(distinct(column)) from table #可以用到索引

 

3、子查询

select count(*) from (select dealer_id  from card GROUP BY dealer_id)as tmp;

 

 

 

posted on 2014-07-13 02:12  思齐_  阅读(19002)  评论(0编辑  收藏  举报