我想获取表中的最后 20 个条目,但按 id 升序排序。
在 Sql 中它不是很复杂:
SELECT *
FROM (SELECT * FROM comments
WHERE postID='$id'
ORDER BY id DESC
LIMIT 20) t
ORDER BY id ASC;
但我想像这样使用我的 yii 模型:
Comment::model()->findAll($criteria)
但我真的不知道应该在我的 CDbCriteria 中放入什么!
最佳答案
$models = Comment::model()->findAll(array(
"condition" => "WHERE postID = '".$id."'",
"order" => "id DESC",
"limit" => 20,
));
将获得最后 20 个。现在你想订购由 id ASC 设置的记录吗?是否没有其他字段可以为类似的结果排序(可能是日期或创建的字段?)例如:
"order" => "id DESC, created ASC"
废除二次排序,但为什么不直接使用数组反转呢?
$models = array_reverse($models);
关于php - Yii:按 id ASC 选择最后 20 个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12941979/