簡體   English   中英

選擇表格中的最后一條記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM