使用orderBy()更改null值的排序方式

时间:2015-09-02 17:16:36

标签: sorting laravel sql-order-by query-builder

我正在使用Laravel 4.2并拥有一个查询构建器对象。我想要排序的列可以为空。当值为null时,它将其视为最低值。我需要将null视为最高值。

public function sort($builder, $direction = 'asc')
{
    return $builder->orderBy('table.nullable_column', $direction);
}

老实说,我只需要在升序排序时保持最后的空值,在降序时保持最后。如果Laravel没有办法解决这个问题,请接受建议。无法使用谷歌找到任何其他内容。希望你们能提供帮助。

谢谢!

1 个答案:

答案 0 :(得分:2)

简单地在列

之前添加-符号
public function sort($builder, $direction = 'asc')
{
    return $builder->orderBy('-table.nullable_column', $direction);
}

参考:MySQL Orderby a number, Nulls last