[英]Select last record in the table
如何從表中選擇最后一條記錄(即MAX(id)
)?
Next語句工作正常,但選擇第一條記錄:
$statistics = SystemStatisticsHistory::findOne(1);
要獲得具有最大id
的模型,您可以應用逆序並限制為1。
SystemStatisticsHistory::find()->orderBy(['id' => SORT_DESC])->one();
另一種選擇是使用subselect和max
如下所示:
SystemStatisticsHistory::find()
->where(['id' => SystemStatisticsHistory::find()->max('id')])
->one();
使用最后一個選項有一些細微差別,請檢查此問題 。
您可以在此處查看max()
的文檔。
我個人更喜歡使用第一種變體。
要獲取第一條記錄,只需在第一個查詢中將順序方向更改為SORT_ASC
在第二個查詢SORT_ASC
max()
更改為min()
。
PS Hardcoded id
是一種不好的做法。
優化的一個
SystemStatisticsHistory::find()->select(['id'=>'MAX(`id`)'])->one()->id;
或者如果你想增加數量
SystemStatisticsHistory::find()->select(['id'=>'( MAX(`id`)+ 1) '])->one()->id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.