web-dev-qa-db-ja.com

laravelの列の最大値を見つける

主キーが自動増分ではないテーブル(クライアント)があるため、問題が始まりました。列データベースに保存されている最大値を選択します。このselectに似ていますが、雄弁なオーム(Laravel)を使用しています:

SELECT MAX(Id) FROM Clientes

どうすればできますか?

私は試した:

Cliente::with('id')->max(id)
Cliente::select('id')->max(id)

単純な生の「SELECT MAX(ID)FROM Clientes」を作成したくない

作れません.

皆さんありがとう!

22
Guido Caffa

正しい構文は次のとおりです。

Cliente::max('id')

https://laravel.com/docs/5.5/queries#aggregates

49
Alexey Mezenin

Laravelはこれを非常に簡単にします。あなたの場合は

$maxValue = Cliente::max('id');

しかし、テーブルから最新のレコードを取得することもできます。これは最高値にもなります

$newestCliente = Cliente::orderBy('id', 'desc')->first(); // gets the whole row
$maxValue = $newestCliente->id;

または値だけ

$maxValue = Cliente::orderBy('id', 'desc')->value('id'); // gets only the id

または、created_at列に日付が含まれている場合、次のような値を取得できます

$maxValue = Cliente::latest()->value('id');

関連するLaravelドキュメント: https://laravel.com/docs/5.5/queries#aggregates

13