【发布时间】:2014-04-10 10:27:55
【问题描述】:
使用以下代码:
$collection = Mage::getModel('custom/custom')
->getCollection()
->distinct(true)
->addFieldToSelect('brand')
->load();
我发现 distinct 在 1.4.2 中被忽略,在 1.8.1 中的代码与我预期的完全相同(为每个品牌返回一个条目)。
1.4.2 结果:
"Ace"
"Ace"
1.8.1 结果:
"Ace"
就我自己而言,我注意到 1.4.2 正在从模型中为每个 object 返回一个包含所有字段的数组,而不仅仅是像 1.8.1 那样在 select (brand) 中指定的那个。我认为这就是导致两个版本的 SELECT 中都包含 distinct 的问题的原因——事实上,不同版本的 SELECT 语句是相同的。
有没有办法在旧版本的 Magento 中为单个字段获得不同的结果?
编辑
根据下面与 liyakat 的讨论,我的最终解决方案是:
$collection = Mage::getModel('custom/custom')
->getCollection()
->distinct(true)
->addFieldToSelect('brand')
->setOrder('brand', 'ASC');
$collection->getSelect()->group('brand');
$collection->load();
【问题讨论】:
标签: magento magento-1.4