按多个字段Magento Custom集合排序

时间:2017-07-04 10:00:19

标签: mysql magento sql-order-by magento-1.9

这是我的表结构:

+----+---------------------+
| id | event_date          |
+----+---------------------+
| 12 | 2017-07-03 01:12:00 |
| 42 | 2017-07-04 18:13:00 |
| 52 | 2017-07-22 23:52:00 |
| 62 | 2017-10-20 23:55:00 |
+----+---------------------+
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(11)      | NO   | PRI | NULL    | auto_increment |
| name       | varchar(255) | YES  |     | NULL    |                |
| status     | tinyint(2)   | NO   |     | 0       |                |
| content    | text         | NO   |     | NULL    |                |
| event_date | datetime     | NO   |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+

我希望得到最新的两条日期顺序为升序的记录。

以下是我正在使用的代码:

$collection = Mage::getModel("blogpromo/blogpromo")->getCollection()
        ->addFieldToFilter('status', 0)
        ->setOrder('id', 'DESC')
        ->setOrder('event_date', 'ASC')
        ->setPageSize(2);

它使用ID提供记录。我想通过使用两个字段进行排序。 虽然,当我尝试仅使用日期排序时,它工作正常。

1 个答案:

答案 0 :(得分:0)

您可以使用addAttributeToSort()

$collection = Mage::getModel("blogpromo/blogpromo")->getCollection()
    ->addFieldToFilter('status', 0)
    ->addAttributeToSort('id', 'DESC')
    ->addAttributeToSort('event_date', 'ASC')
    ->setPageSize(2);