按照Laravel 5.3中两列的差异排序

Tas*_*sos 0 php laravel eloquent laravel-5 laravel-5.3

我有一个雄辩的查询,其中orderBy之一是两列的差异.

$mymodel = Level::where([['ColA', 5], ['ColB', 10], ['ColC', 7]])
                 ->orderBy('ColA', 'Desc')
                 ->orderBy('ColA' - 'ColB', 'Desc')
                 ->orderBy('ColC', 'Desc')
                 ->orderBy('ColD', 'Asc')
                 ->pluck('userId')->toArray();
Run Code Online (Sandbox Code Playgroud)

使用sqlite的localhost上完全相同的代码可以正常运行而不会出错.但在使用MySQL进行生产时出现以下错误

SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'order clause' (SQL: select `userId` from `levels` where (`ColA` = 5 and `ColB` = 10 and `ColC` = 7) order by `ColA` desc, `0` desc, `ColC` desc, `ColD` asc)
Run Code Online (Sandbox Code Playgroud)

Stu*_*urm 9

$model = Level::where($wheres)
              ->orderByRaw('(ColA - ColB) DESC')
              ->pluck('userId')
              ->toArray();
Run Code Online (Sandbox Code Playgroud)