php - Yii:按 id ASC 选择最后 20 个条目

标签 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;

但我想像这样使用我的 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/

相关文章:

php - 在 Laravel 8 中使用用户名和密码进行身份验证时出现问题

php - 密码保护文件夹的最佳方式?

php - 使用 PHP 将图像上传到 FTP

php - MySQL 的 undefined variable 错误

mysql - 我需要删除列中所有前导 0

sql - WHERE 子句中的逻辑处理顺序或 SQL 标准

php - Symfony2 Twig 日期 ("H") "Military Time"

mysql - ERROR 1064 (42000) over partition by 语法中的数据库错误

php - 为带有 TICKED 复选框的行运行 UPDATE 语句

java - hibernate 查询: Joins and with query