Laravel:排序列ASC但是0排在最后

时间:2017-07-18 03:49:16

标签: sql laravel laravel-5 sql-order-by

使用Laravel,按列升序排序,但0表示最后排序。这就是我们在普通SQL中的做法:

SELECT * FROM your_table ORDER BY your_field = 0, your_field;

我想知道如何在Laravel。

非常感谢

3 个答案:

答案 0 :(得分:2)

使用orderByRaw()

假设Your_Table模型

Your_Table::orderByRaw('your_field = 0, your_field')->get();

答案 1 :(得分:1)

您可以尝试使用orderByRaw函数。

例如:

$data = new YourModel();
$data = $data->orderByRaw('your_field = 0', 'ASC', 'your_field')->get();

答案 2 :(得分:0)

我认为我们可以使用DB::raw,因此可能会使用。

DB::select( DB::raw( "SELECT * FROM your_table ORDER BY your_field = 0, your_field" ) );