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;