使用Zend DB Table Select中的SQL_CALC_FOUND_ROWS获取总行数

Ali*_*Ali 3 php mysql sql zend-framework

有没有办法在常规mysql查询中使用SQL_CALC_FOUND_ROWS来获取Zend db中的总行数.除了运行没有limit子句的相同查询之外,我还没有找到类似的功能.

Tom*_*far 11

$db->select()
   ->from($tableName, array(
       new Zend_Db_Expr('SQL_CALC_FOUND_ROWS id'), 
       'name', 
       'price'
   ));
Run Code Online (Sandbox Code Playgroud)

您还可以尝试用COUNT(*)替换所有cols并第二次运行查询.它实际上可能更有效(即使它是违反直觉的).这是我的应用程序的情况.

你可以这样做:

$select->reset('cols')->reset('limit')->cols('COUNT(*)'); //there is a constant for the 'cols' in Select class
$db->query($select);
Run Code Online (Sandbox Code Playgroud)