Laravel Orderby запрос с отличным - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь получить уникальный идентификатор_потока с последним заказом по desc creat_time

Это пример моей таблицы.

===========================================
= id = thread_id = page_id = created_time =
===========================================
= 1  = 3         = 1       = 1551162660   =
= 2  = 1         = 1       = 1551162661   =
= 3  = 1         = 1       = 1551162662   =
= 4  = 2         = 1       = 1551162663   =
= 5  = 3         = 1       = 1551162664   =
= 6  = 1         = 1       = 1551162665   =
===========================================

Это мой код.

DB::table('table_a')->select('thread_id')->orderBy('created_time', 'desc')->where('page_id', $page_id)->distinct()->get();

Проблема с моим кодом сейчас в том, что он пропускает последнее время созданного времени из-за различного ..

Как правильно это сделать?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Для этого можно использовать метод latest ().

DB::table('table_a')->latest('created_time')->distinct()->get();

Редактировать: Если у вас все еще есть проблемы, вы также можете использовать метод groupBy ().

Официальная документация в Документах Laravel.

0 голосов
/ 26 февраля 2019

попробуйте использовать группу вместо distinct

DB::table('table_a')
 ->select('thread_id')
 ->orderBy('created_time', 'desc')
 ->where('page_id', $page_id)
 ->groupBy('thread_id')
 ->get();
...