laravel按日期排序,空日期总是在末尾

pbgvytdp  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(477)

我必须在我的日期字段上排序订单 send_date ,但空的发送日期总是在结尾。
我试过了,但没用:

Order::orderBy(\DB::raw('ISNULL(send_date), send_date'), 'asc')
->orderBy('send_date', 'desc')

我如何在发送日期排序,空日期总是在结尾?

eit6fx6z

eit6fx6z1#

只需在列名前使用-减号。

Order::orderByRaw("-start_date",'DESC');

它将对末尾的空值进行排序。
希望这有帮助。

a6b3iqyw

a6b3iqyw2#

你可以做:

Order::orderBy(\DB::raw("COALESCE(d, '9999-12-31')", 'ASC');

这是因为如果日期是空的,它被认为是 9999-12-31 根据文件,这是最大可能的日期
注意:这只适用于排序asc,但如果排序desc nulls,则它仍然位于末尾。
检查小提琴

ohtdti5x

ohtdti5x3#

Order::orderBy("start_date",'DESC');

我想会有帮助的

相关问题