我到处寻找,但我似乎无法找到这个问题的解释或答案。
我们说我有一个大约200多个用户的数据库。用户表中有两个字段需要都是最高的,才能成为头号用户。 Field1比field2更重要。
例如: field1 = 5 且 field2 = 10 的用户高于 field1 = 5 且 field2 = 9 但低于 field1 = 6 且 field2 = 2 的用户。
我希望能够产生所有用户的前10名。如果我可以选择排名最低的10或排名为20到30的用户,那就太棒了。
我使用Yii框架,所以它可能看起来像:
$criteria = new CDbCriteria;
$users = Users::model()->findAll($criteria);
非常感谢您的时间和精力:)
答案 0 :(得分:2)
使用CDbCritria
,请按以下方式指定您的订单:
$criteria->order = "field1, field2 DESC";
应首先按字段1排序然后按字段2
排序答案 1 :(得分:2)
您可以像在sql中一样使用CDbCriteria::limit
和CDbCriteria::order
。所以从20到30中选择:
$criteria->order = 'field1 DESC, field2 DESC'
$criteria->limit = '20, 10';