尝试做与此问题类似的事情,但需要对 MySQL 的 NULLS LAST 进行排序
就像是...
$query->MODEL_NAME::find();
$query->orderBy(['column_1' => 'IS NULL','column_1'=> SORT_DESC]);
Run Code Online (Sandbox Code Playgroud)
虽然这个语法是错误的。谢谢!
当我尝试时orderBy('column_1 IS NULL ASC, column_1 desc')出现错误
SQLSTATE[42S22]:未找到列:1054 未知列。正在执行的 SQL 是:
SELECT * FROM 'table' ORDER BY 'due_date IS NULL'
注意:必须将上面错误中的反引号替换为单引号才能在此处显示。
使用\yii\db\Expression
MODEL::find()
->where('1')
->orderBy(
[
new \yii\db\Expression('col_1 IS NULL ASC, col_1 desc')
]
)
->all();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3295 次 |
| 最近记录: |