我确信可以通过一些聪明的mysql表达式或zend joins来解决,但是我只是在这里没有足够的知识来解决,希望SO社区中的某个人可以解决。

假设我在Magento中有一个产品集合,并且按类别位置订购。

我只想从该集合中检索2个产品,这些产品具有最高的类别位置。

以下应说明:

Category:
    Product A (position 3);
    Product B (position 1);
    Product C (position 0);
    Product D (position 2);


在此集合中,我只想检索产品C和B,因为这是两个最高的位置。

另一个例证:

Category:
    Product A (position 1);
    Product B (position 3);
    Product C (position 0);
    Product D (position 2);


在此集合中,我只想检索产品C和A。

如何在单个收集负载中完成此操作。例如,我不想加载集合,然后遍历并手动排序等。

最佳答案

$_category = Mage::getModel('catalog/category')->load($categoryId);
$coll = $_category->getProductCollection()->addAttributeToSort('position','ASC');
$coll->getSelect()->limit(2);
$coll->load();


之后,您可以遍历集合:

foreach ($coll as $product) {
   // Do sth. with $product
}

关于php - Magento集合分组和值范围限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14231708/

10-16 16:15