sql >> Database >  >> RDS >> Mysql

Laravel:Hoe de laatste n (willekeurig aantal) rijen te nemen nadat ze in oplopende volgorde zijn besteld?

Je bent heel dichtbij.

Het klinkt alsof u de array eerst in aflopende volgorde wilt ordenen

  Model::orderBy('created_at','desc')->take(3);

maar draai dan de array om. Je kunt dit op twee manieren doen, ofwel de traditionele PHP (met array_reverse).

  $_dates = Model::orderBy('created_at','desc')->take(3);
  $dates = array_reverse($_dates);

Of de laravel-manier, met behulp van de reverse functie in Laravel's Collection klasse.

  $_dates = Model::orderBy('created_at','desc')->take(3)->reverse();

Bekijk Laravel's Collection documentatie op hun API-site op http://laravel.com/api/class -Illuminate.Support.Collection.html

Nu zal $dates de gewenste output bevatten.

dunno,time3
world,time4
hihio,time5


  1. MySQL - SOM van een groep tijdsverschillen

  2. VERWIJDEREN met LEFT JOIN met LIMIT in MySQL

  3. SQL - som van enkele rijen, minus som van andere rijen

  4. Vraag ouders en kinderen in zelfverwijzende tabel