0
我如何能實現在Yii2以下排序:Yii2高級排序
SELECT * FROM `orders` order by case when status != 'ORDER_DONE' then 1 else 2 end,status
我想ORDER_DONE至底部下降狀態。任何想法?
我如何能實現在Yii2以下排序:Yii2高級排序
SELECT * FROM `orders` order by case when status != 'ORDER_DONE' then 1 else 2 end,status
我想ORDER_DONE至底部下降狀態。任何想法?
由於2.0.7你可以通過yii\db\Expression
到orderBy()
這樣做這樣:
(new \yii\db\Query)
->from('orders')
->orderBy(new \yii\db\Expression('CASE WHEN status != "ORDER_DONE" THEN 1 ELSE 2 END, status'))
->all();
對於排序數據提供商使用:
謝謝!某種程度上可以用這種解決方案來排序屬性嗎? '排序'=> [ \t '屬性'=> [ \t \t 'onlinedate'=> [ \t \t \t '遞增'=> [ 'onlinedate'=> SORT_ASC] //需要把狀態型ORDER_DONE至底部 \t \t \t '降序'=> [ 'onlinedate'=> SORT_DESC]的,//必要把型ORDER_DONE的狀態到頂部 \t \t], \t \t '狀態', \t] , ], – jahau
查看我的回覆更新。 – Bizley
我得到以下錯誤: 錯誤的信息:陣列 ( [0] => 42S22 [1] => 1054 [2] =>在 'order子句' 未知列 '表達') – jahau