使用Zend_Db_Select order()在顶部对特定项进行排序的数组

时间:2016-02-18 05:33:52

标签: mysql zend-framework zend-db

我正在尝试修改一个插件,除其他外,按字母顺序从mysql数据库中排序数组。执行排序的相关PHP文件的部分如下所示:

$select->order("$alias.name ASC");

我想继续按升序对项目进行排序,但我想在顶部保留一个特定项目(按字母顺序排列)。

从信息here看来,在MySQL中执行此操作的方式很简单,只需:

ORDER BY name = 'Library' desc,
         name asc;

但即使研究信息here,我也无法将其转化为order()函数。我试过了:

$select->order("$alias.name ='Library' DESC","$alias.name ASC")

但它似乎并不是那么有效。

1 个答案:

答案 0 :(得分:0)

好的,找到了答案 -

我需要使用Zend_Db_Expr()。如果它对其他人有帮助,这就解决了:

$select->order(array(
    new Zend_Db_Expr("$alias.name = 'Library' DESC"),
    new Zend_Db_Expr("$alias.name ASC")
));