Yii:按ID ASC选择最后20个条目

dar*_*eir 4 php mysql sql activerecord yii

我想获得我的表的最后20个条目,但按升序ID排序.

在Sql中它不是很复杂:

SELECT * 
FROM (SELECT * FROM comments
      WHERE postID='$id' 
      ORDER BY id DESC 
      LIMIT 20) t
ORDER BY id ASC;
Run Code Online (Sandbox Code Playgroud)

但我想用我的yii模型:

Comment::model()->findAll($criteria)
Run Code Online (Sandbox Code Playgroud)

但我真的不知道我应该把什么放在我的CDbCriteria中!

Bre*_*son 10

$models = Comment::model()->findAll(array(
    "condition" => "WHERE postID = '".$id."'",
    "order" => "id DESC",
    "limit" => 20,
));
Run Code Online (Sandbox Code Playgroud)

将获得最后的20.现在你想订购由id ASC设置的记录正确吗?是否没有其他字段可以为相似的结果(可能是日期或创建的字段?)订购,例如:

"order" => "id DESC, created ASC"
Run Code Online (Sandbox Code Playgroud)

废二级排序,但为什么不只是使用数组反转?

$models = array_reverse($models);
Run Code Online (Sandbox Code Playgroud)