是否有一种方法可以在Zend db select中获取总行数,就像在常规mysql查询中使用SQL_CALC_FOUND_ROWS一样。除了运行没有限制子句的相同查询之外,我还没有找到类似的功能。
是否有一种方法可以在Zend db select中获取总行数,就像在常规mysql查询中使用SQL_CALC_FOUND_ROWS一样。除了运行没有限制子句的相同查询之外,我还没有找到类似的功能。
$db->select()
->from($tableName, array(
new Zend_Db_Expr('SQL_CALC_FOUND_ROWS id'),
'name',
'price'
));
你还可以尝试用 COUNT(*)替换所有的cols,然后再运行查询语句第二次。这可能会更加高效(即使这看起来有些违反常理)。在我的应用程序中就是这种情况。
你可以像这样实现:
$select->reset('cols')->reset('limit')->cols('COUNT(*)'); //there is a constant for the 'cols' in Select class
$db->query($select);
如果需要行内的数据,请使用此方法
$rows = $db->select()->from('foo')->query()->fetchAll();
echo 'Total number of rows found : ' . count($rows);
$count = $db->select()->from('foo','COUNT(*)')->query()->fetchColumn();