Уникальный выбор формата данных Laravel

Xyrin Technologies спросил: 28 марта 2018 в 04:34 в: laravel

Мне нужно получить записи из базы данных с уникальными полями created_at.

Пример

id: 1
created_at: 2018-04-20 17:39:04id: 2
created_at: 2018-04-20 21:39:04id: 3 
created_at: 2018-04-21 17:39:04

Теперь мне нужно получить 2 записи с одним запросом , Почему я имею в виду 2 - один для 2018-04-20 и один для 2018-04-21

3 ответа

afsal c ответил: 28 марта 2018 в 04:48

Вы можете использовать groupBy

DB::table('table_name')
            ->groupBy('created_at')
            ->get();

или если вы ищете группу только по дате, которую вы можете использовать

DB::table('table_name')
            ->groupBy(DB::raw('DATE(created_at)'))
            ->get();

проверьте это https://laravel.com/docs/5.6/queries#ordering-grouping-limit-and-offset

Xyrin Technologies ответил: 28 марта 2018 в 04:55
Но есть проблема с этим, я. нужно получить результаты, основанные на "Y-m-d", и выше дает мне 3 результата. Скорее должны быть результаты.
Anil Kumar ответил: 28 марта 2018 в 04:57

Чтобы выбрать отдельные данные на основе созданного_1. выберите отличный (созданный_кат) из tableName

И если вам нужно только две записи, используйте предел 2 в конце запроса

  1. выберите отличный (созданный_ат ) из tableName limit 2
Xyrin Technologies ответил: 28 марта 2018 в 04:56
Но есть проблема с этим, мне нужно получить результаты, основанные на "Y-m-d", и выше дает мне 3 результата. Скорее должны быть результаты.
Adnan Mumtaz ответил: 28 марта 2018 в 05:02
      DB::table('table_name')
        ->select('*' ,DB::raw(' DISTINCT (created_at) ') )
        ->get();

Вы можете использовать DISTINCT() для извлечения уникальных записей.

Xyrin Technologies ответил: 28 марта 2018 в 04:55
Но есть проблема с этим, мне нужно получить результаты, основанные на "Y-m-d", и выше дает мне 3 результата. Скорее должны быть результаты.