选择表格中的最后一条记录

Mak*_*imK 10 php mysql yii2

如何MAX(id)从表中选择最后一条记录(即拥有)?
Next语句工作正常,但选择第一条记录:

$statistics = SystemStatisticsHistory::findOne(1); 
Run Code Online (Sandbox Code Playgroud)

aro*_*hev 23

要获得最大模型,id您可以应用反向顺序并限制为一个.

SystemStatisticsHistory::find()->orderBy(['id' => SORT_DESC])->one();
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用subselect,max如下所示:

SystemStatisticsHistory::find()
    ->where(['id' => SystemStatisticsHistory::find()->max('id')])
    ->one();
Run Code Online (Sandbox Code Playgroud)

使用最后一个选项有一些细微差别,请检查此问题.

您可以在max() 此处查看文档.

我个人更喜欢使用第一种变体.

拿到第一的记录,只是顺序的方向改变为SORT_ASC在第一个查询max()到min()在第二个查询.

PS Hardcoded id是一种不好的做法.