Laravel порядок по дате, нулевые даты всегда в конце - PullRequest
0 голосов
/ 14 мая 2018

Я должен отсортировать заказы в поле даты send_date, но NULL send_dates всегда в конце.

Я пробовал это, но это не работает:

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

Как я могу отсортировать по send_date, с NULL датами всегда в конце?

Ответы [ 3 ]

0 голосов
/ 14 мая 2018
Order::orderBy("start_date",'DESC');

думаю, это поможет

0 голосов
/ 14 мая 2018

Вы можете сделать:

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

Это работает, потому что, если дата равна NULL, она считается 9999-12-31, что согласно документам является самой большой возможной датой

Примечание. Это работает только в том случае, если вы сортируете ASC, но если вы в любом случае сортируете DESC, значения NULL находятся в конце.

Проверьте скрипку

0 голосов
/ 14 мая 2018

Просто используйте знак-минус перед именем столбца.

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

Будет порядок сортировки нулевых значений в конце.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...