【问题标题】:Yii - Retrieve top 10 through CDbCriteriaYii - 通过 CDbCriteria 检索前 10 名
【发布时间】:2014-11-30 17:51:17
【问题描述】:

我到处寻找,但似乎找不到这个问题的解释或答案。

假设我有一个包含大约 200 多个用户的数据库。用户表中有两个字段都需要最高,才能成为第一用户。字段 1 比字段 2 更重要。

例如:field1 = 5field2 = 10 的用户高于 field1 = 5 的用户>field2 = 9 但低于 field1 = 6field2 = 2 的用户。

我希望能够在所有用户中排名前 10。如果我能选择排名倒数 10 或排名 20 到 30 的用户,那就太好了。

我使用的是 Yii 框架,所以它可能看起来像:

 $criteria = new CDbCriteria;
 $users = Users::model()->findAll($criteria);

非常感谢您的时间和精力:)

【问题讨论】:

  • 对不起。我错误地投了反对票。然后我的网络中断了,等它回来时,我的投票被锁定了。
  • @topher 别担心兄弟 :) +1

标签: php mysql yii


【解决方案1】:

您可以像在 sql 中一样使用 CDbCriteria::limitCDbCriteria::order。所以要从 20 到 30 中选择:

$criteria->order = 'field1 DESC, field2 DESC'
$criteria->limit = '20, 10';

【讨论】:

  • 谢谢!这对我帮助很大。
【解决方案2】:

使用CDbCritria,像这样指定您的订单:

$criteria->order = "field1, field2 DESC";

应该先按字段 1 排序,然后按字段 2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    相关资源
    最近更新 更多