2015-01-12 22 views
5

テーブルから最後のレコード(つまり、MAX(id))を選択する方法はありますか?
次のステートメントは、[OK]を動作しますが、最初のレコードを選択:あなたが一つに逆順と制限を適用することができ、最大idでモデルを取得するにはテーブルの最後のレコードを選択

$statistics = SystemStatisticsHistory::findOne(1); 

答えて

13

を。

SystemStatisticsHistory::find()->orderBy(['id' => SORT_DESC])->one(); 

別のオプションはそうのようなmaxで副選択を使用することです:

SystemStatisticsHistory::find() 
    ->where(['id' => SystemStatisticsHistory::find()->max('id')]) 
    ->one(); 

最後のオプションを使用して、いくつかのニュアンスがありますが、this questionを確認してください。

max()hereのドキュメントを参照してください。

私は個人的に最初のバリエーションを使用します。

最初のレコードを取得するには、最初のクエリではSORT_ASC、2番目のクエリではmax()~に変更してください。

P.S.ハードコードidは悪い習慣です。

+1

ありがとうございました!できます! – MaksimK

+1

喜んで助けてください。この場合、回答を受け入れたものとしてマークしてください。 – arogachev

関連する問題