2019-04-09 15:39:09 1253次浏览 1条回答 0 悬赏 10 金钱

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']);
}
补充于 2019-04-09 15:41

有人遇到过这个问题吗?

最佳答案

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
PHP学院的中学生
副总裁

PHP学院的中学生

注册时间:2018-10-23
最后登录:2024-04-07
在线时长:168小时1分
  • 粉丝29
  • 金钱4730
  • 威望30
  • 积分6710

热门问题