Yii2 中要求按某个字段 固定值排序

Yii2 中要求按某个字段 固定值排序,比如:

Product
id | name
1 | A
2 | B
3 | C
4 | D
 I want ID 3 in first position:

Product
id | name
3 | C
1 | A
2 | B
4 | D

这种情况,就可以用 上 orderBy field !如:

$orderBy = (new \yii\db\Query())
         ->select('*')
         ->from('product')
         ->orderBy([new \yii\db\Expression('FIELD (id, 3,1,2,4)')])
         ->all();

或者简化成类似这样:

if ( in_array(2, $status) ) {
	$query->orderBy(["FIELD(`id`,3,2,1)"=>true, 'g.start_time'=>'asc']);
} else {
	$query->orderBy(["FIELD(`id`,4,5,6)"=>true, 'g.start_time'=>'desc']);
}





猜你喜欢

转载自blog.csdn.net/u011341352/article/details/79133048
今日推荐