如何从laravel中的最新日期检索数据?

时间:2018-02-14 05:13:40

标签: laravel laravel-5.5

在mySql中,我可以按如下方式对最新日期的数据执行:

select * from tbl where date = 'select max(date) from tbl';

但我不知道怎么做才是拉拉维尔?怎么做?

4 个答案:

答案 0 :(得分:5)

使用orderbBy()

TblModel::orderBy('date','DESC')->first();

DB::table('tbl')->orderBy('date', 'DESC')->first();

<强>更新

TblModel::where('date', TblModel::max('date'))->orderBy('date','desc')->get();

答案 1 :(得分:2)

您可以使用latest()

DB::table('tbl')->latest()->first(); // considers created_at field by default.

或者

DB::table('items')->latest('date')->first(); //specify your own column

引擎盖下:

latest()orderBy与您在descending订单中提供的列一起显示默认列为created_at的列。

//Illuminate\Database\Query\Builder
public function latest($column = 'created_at')
{
    return $this->orderBy($column, 'desc');
} 

答案 2 :(得分:1)

您也可以在此处使用Eloquent进行查询

TableModel::latest()->first(); // returns the latest inserted record

TableModel::oldest()->first(); // returns the first ever inserted record from your table

答案 3 :(得分:-3)

这里有详细记载:

https://laravel.com/docs/5.6/eloquent#retrieving-single-models

  

您还可以使用(not static)countsum以及查询构建器提供的其他聚合方法。这些方法返回适当的标量值,而不是完整的模型实例:

示例:

max

如前所述,您不一定需要使用$max = DB::table('tbl')::max('date'); $max = App\TblModel::where('active', 1)->max('date'); 语法的模型。

您还应该考虑的是此处提供的答案的performance aspect(如果您至少不使用该列的索引)