> 数据库 > MySQL >

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;


(责任编辑:IT)