Yii2 OrderBy 特定字段值优先

Gie*_*est 3 mysql yii2

这是我的表:

Product
id | name
1 | A
2 | B
3 | C
4 | D
Run Code Online (Sandbox Code Playgroud)

我希望 ID 3 处于第一位:

Product
id | name
3 | C
1 | A
2 | B
4 | D
Run Code Online (Sandbox Code Playgroud)

我只能用“OrderBy”分配 ASC 和 DESC 值。如果您分配一个数值,它会出错。

Ins*_*ull 13

使用yii\db\Expression

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

  • ->orderBy([new \yii\db\Expression('FIELD (id, 3) DESC'), 'id' => SORT_ASC]) (4认同)