如何比较Magento查询中的两个字段?

时间:2011-11-08 17:16:18

标签: magento magento-1.5

我正在使用我在某处找到的代码获取所有活跃的特殊产品:

  $collection = $this->_addProductAttributesAndPrices($collection)
 ->addStoreFilter()
 ->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate))
 ->addAttributeToFilter('special_to_date', array('or'=> array(
    0 => array('date' => true, 'from' => $todayDate),
    1 => array('is' => new Zend_Db_Expr('null')))
 ), 'left')
 ->setPageSize($this->get_prod_count())
 ->setCurPage($this->get_cur_page());

现在我想只得到价格特别优惠的产品,但我仍然无法理解如何做到这一点。

我一直在阅读此页:http://www.magentocommerce.com/wiki/5_-_modules_and_development/catalog/using_collections_in_magento

我尝试了这个没有成功:

     ->addAttributeToFilter('special_price', array('lt' => 'price'))

感谢您的帮助!

2 个答案:

答案 0 :(得分:7)

你可以尝试this,感谢Zyava!

关于我的案子:

  

- > addAttributeToFilter('price',array('gt'=> new Zend_Db_Expr('final_price')))

答案 1 :(得分:0)

效率较低的解决方案是遍历集合,

$products = array();
$collection = Mage::getResourceModel('catalog/product_collection');
foreach($collection as $col) {
    $product = Mage::getModel('catalog/product')->load($col->getId());
    if( $product->getPrice() > $product->getSpecialPrice() ) {
        $products[] = $product;
    }
 }

最终你将拥有一系列产品......