Yii2按最大日期选择?

cha*_*ang 9 mysql activerecord yii2

假设我在yii2中有表A及其活动记录,可以将具有最大创建日期的记录加载到模型的最佳方法是什么.

这是查询:

     select * 
     from  A 
     where created_date = (
        select max(created_date) from A 
      )
Run Code Online (Sandbox Code Playgroud)

现在我首先获得最大日期,然后在另一个数据库访问中使用它,即:

    $max = A::find()->select("created_date)")->max();
    $model = A::find()->where("created_date = :date",[":date"=>$max])->one();
Run Code Online (Sandbox Code Playgroud)

我确信这可以通过一次访问数据库来完成,但我不知道如何.

请任何帮助.

top*_*her 16

您的查询相当于:

SELECT * FROM A ORDER BY created_date DESC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

您可以按created_date降序订购记录并获得第一条记录,即:

$model = A::find()->orderBy('created_date DESC')->limit(1)->one();
Run Code Online (Sandbox Code Playgroud)