Задать вопрос

Как правильно применить distinct в таком запросе?

Версия Laravel: 5.5.*
Использую такой метод для получения 50 строк из БД.
/**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
      $prices = Prices::where('name',$id)->take(50)->get();
      return GraphResource::collection($prices);
    }


Но по полю last_updated мне нужно получать записи с неповторяющимся значением ключа (в колонке хранится время в формате timestamp).

Пытаюсь сделать так:
$prices = Prices::where('name',$id)->take(50)->distinct('last_updated')->get();

Но по-прежнему данные выводятся с повторяющимися last_updated значениями.

Как выбрать из базы 50 значений с уникальными данные в last_updated?
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Denormalization
@Denormalization
id: 1, last_updated: 1524855575, price: 5000
id: 2, last_updated: 1524855575, price:5000.


Можно группировать через groupBy('name', 'last_updated') тогда будут уникальные в результате.
Так же стоит подумать о том, чтобы добавить уникальный ключ last_updated/name чтобы такие записи не заносились в базу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы