2015-01-12 47 views
5

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

$statistics = SystemStatisticsHistory::findOne(1); 

回答

13

要获得最大id模型可以应用相反的顺序和限制之一。

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

另一种选择是使用子查询与max像这样:

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

有一些细微使用最后一个选项,检查this question

您可以检查文档max()here

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

要获得第一条记录,只需在第一个查询中将订单方向更改为SORT_ASC,将第二个查询中的max()更改为min()

P.S.硬编码id是一个不好的做法。

+1

谢谢!有用! – MaksimK

+1

很高兴帮助。在这种情况下将答案标记为已接受。 – arogachev

相关问题