使用 orderBy() 更改空值的排序方式
Change how null value is sorted using orderBy()
我正在使用 Laravel 4.2 并且有一个查询生成器对象。我尝试排序的列可以为空。当该值为 null 时,它将其视为最低值。我需要让它将 null 视为最高值。
public function sort($builder, $direction = 'asc')
{
return $builder->orderBy('table.nullable_column', $direction);
}
老实说,我只需要空值在升序排序时排在最后,在降序排序时排在最后。如果 Laravel 没有办法处理这个问题,欢迎提出建议。无法使用 google 找到任何其他内容。希望你们能帮忙。
谢谢!
简单地在列前放一个-
符号
public function sort($builder, $direction = 'asc')
{
return $builder->orderBy('-table.nullable_column', $direction);
}
参考:MySQL Orderby a number, Nulls last
我正在使用 Laravel 4.2 并且有一个查询生成器对象。我尝试排序的列可以为空。当该值为 null 时,它将其视为最低值。我需要让它将 null 视为最高值。
public function sort($builder, $direction = 'asc')
{
return $builder->orderBy('table.nullable_column', $direction);
}
老实说,我只需要空值在升序排序时排在最后,在降序排序时排在最后。如果 Laravel 没有办法处理这个问题,欢迎提出建议。无法使用 google 找到任何其他内容。希望你们能帮忙。
谢谢!
简单地在列前放一个-
符号
public function sort($builder, $direction = 'asc')
{
return $builder->orderBy('-table.nullable_column', $direction);
}
参考:MySQL Orderby a number, Nulls last