在lib/Varien/Data/Collection/Db.php中有一个方法getSelectCountSql()由所有 Magento 集合继承。在此方法中,Select 对象被克隆,并准备专门用于获取集合项的 COUNT 值,而不是加载集合,而是使用轻量级 Select 查询数据库。
准备工作是通过重置 Select 的不必要部分和可能影响 COUNT 结果的部分来完成的。这是代码:
public function getSelectCountSql()
{
$this->_renderFilters();
$countSelect = clone $this->getSelect();
$countSelect->reset(Zend_Db_Select::ORDER);
$countSelect->reset(Zend_Db_Select::LIMIT_COUNT);
$countSelect->reset(Zend_Db_Select::LIMIT_OFFSET);
$countSelect->reset(Zend_Db_Select::COLUMNS);
...
我想知道,Magento 工程师没有$countSelect->reset(Zend_Db_Select::GROUP);
与其他部件一起包含的真正原因是什么。
Magento 似乎没有从一个版本到另一个版本来解决这个问题,我很确定这是一个错误,所以也许我错了?如果有人能解释不将 GROUP 部分包含在重置部分列表中的原因,我将不胜感激。
PS这不是这个问题的重复,我知道如何添加修复程序,我只是想得到一个解释(如果存在的话)为什么Magento工程师从一开始就没有这样做,并继续忽略这个问题。