Php 选择表中的最后一条记录
如何从表中选择最后一条记录(即具有Php 选择表中的最后一条记录,php,mysql,yii2,Php,Mysql,Yii2,如何从表中选择最后一条记录(即具有MAX(id)) Next语句工作正常,但选择第一条记录: $statistics = SystemStatisticsHistory::findOne(1); 要获得具有maxid的模型,您可以应用反向顺序并限制一个 SystemStatisticsHistory::find()->orderBy(['id' => SORT_DESC])->one(); 另一个选项是将subselect与max一起使用,如下所示: SystemStat
MAX(id)
)
Next语句工作正常,但选择第一条记录:
$statistics = SystemStatisticsHistory::findOne(1);
要获得具有max
id
的模型,您可以应用反向顺序并限制一个
SystemStatisticsHistory::find()->orderBy(['id' => SORT_DESC])->one();
另一个选项是将subselect与max
一起使用,如下所示:
SystemStatisticsHistory::find()
->where(['id' => SystemStatisticsHistory::find()->max('id')])
->one();
使用最后一个选项,检查有一些细微差别
您可以查看文档中的max()
我个人更喜欢使用第一个变体
要获取第一条记录,只需在第一次查询中将订单方向更改为SORT\u ASC
,在第二次查询中将max()
更改为min()
p.S.硬编码id
是一种不好的做法。优化的做法
SystemStatisticsHistory::find()->select(['id'=>'MAX(`id`)'])->one()->id;
或者如果你想增加数量
SystemStatisticsHistory::find()->select(['id'=>'( MAX(`id`)+ 1) '])->one()->id;
很乐意帮忙。在这种情况下,将答案标记为已接受。