2013-11-23 61 views
3

我已經知道如何通過Magento集合執行簡單的訂單。但是,這一次我想要做這樣的事情,如何使用Magento集合中的表達式執行ORDER BY

SELECT * FROM table WHERE filed LIKE '%abc%' 
ORDER BY SUBSTRING(field, 1, 2) DESC LIMIT 10 

因此,如何能我一條一條地添加字符串函數到我的訂單?有任何想法嗎?

回答

5

Magento模型有簡單的屬性setOrder()方法排序:

$oCollection = Mage::getModel('catalog/product') 
    ->getCollection() 
    ->setOrder('name_of_attribute_to_sort', 'ASC'); 

他們沒有專門的方法,通過像你這樣的表現排序,但Magento的收藏使用擴展Zend_Db_Select一個Varien_Db_Select實例,所以你可以使用其order()limit()方法:

$oCollection = Mage::getModel('catalog/product')->getCollection(); 
$oCollection 
    ->getSelect() 
    ->order(array('SUBSTRING(field, 1, 2) DESC')) 
    ->limit(10); 
相關問題