Tha*_*anu 3 sql collections sql-order-by magento
我已经知道如何使用Magento系列进行简单的订购.但是这次我想做这样的事情,
SELECT * FROM table WHERE filed LIKE '%abc%'
ORDER BY SUBSTRING(field, 1, 2) DESC LIMIT 10
Run Code Online (Sandbox Code Playgroud)
那么如何在我的order by子句中添加SUBSTRING函数呢?有任何想法吗?
Magento模型有一个setOrder()简单的属性排序方法:
$oCollection = Mage::getModel('catalog/product')
->getCollection()
->setOrder('name_of_attribute_to_sort', 'ASC');
Run Code Online (Sandbox Code Playgroud)
它们没有像你这样的表达式进行排序的专用方法,但是Magento集合使用Varien_Db_Select扩展实例Zend_Db_Select,所以你可以使用它order()和limit()方法:
$oCollection = Mage::getModel('catalog/product')->getCollection();
$oCollection
->getSelect()
->order(array('SUBSTRING(field, 1, 2) DESC'))
->limit(10);
Run Code Online (Sandbox Code Playgroud)