Gui*_*ffa 28 laravel eloquent laravel-5.3
问题开始是因为我有一个表(Clientes),主键不是自动增量.我想选择存储在列数据库中的最大值.喜欢这个选择,但有雄辩的orm(Laravel):
SELECT MAX(Id) FROM Clientes
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
我试过了:
Cliente::with('id')->max(id)
Cliente::select('id')->max(id)
Run Code Online (Sandbox Code Playgroud)
我不想做一个简单的原始"SELECT MAX(ID)FROM Clientes"我不能做.谢谢大家!
Ale*_*nin 56
正确的语法是:
Cliente::max('id')
Run Code Online (Sandbox Code Playgroud)
https://laravel.com/docs/5.5/queries#aggregates
小智 15
Laravel让你很容易,在你的情况下你会使用
$maxValue = Cliente::max('id');
Run Code Online (Sandbox Code Playgroud)
但您也可以从表格中检索最新的记录,这也是最高的值
$newestCliente = Cliente::orderBy('id', 'desc')->first(); // gets the whole row
$maxValue = $newestCliente->id;
Run Code Online (Sandbox Code Playgroud)
或只是价值
$maxValue = Cliente::orderBy('id', 'desc')->value('id'); // gets only the id
Run Code Online (Sandbox Code Playgroud)
或者,如果您有一个created_at日期列,您可以获得这样的值
$maxValue = Cliente::latest()->value('id');
Run Code Online (Sandbox Code Playgroud)
相关的Laravel文档:https://laravel.com/docs/5.5/queries#aggregates
小智 7
Cliente::where('column_name', $your_Valu)->max('id') // You get any max column
Run Code Online (Sandbox Code Playgroud)