如何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是一种不好的做法.