2014-11-30 2 views
0

어디에서나 보았지만이 질문에 대한 설명이나 대답을 찾을 수 없습니다.Yii - CDbCriteria를 통해 상위 10 개 검색

약 200 명이 넘는 사용자의 데이터베이스가 있다고 가정 해 보겠습니다. 사용자 테이블에는 번호가 가장 큰 사용자가되기 위해 두 가지 필드가 모두 필요합니다. Field1은 Field2보다 더 중요합니다. 그래서 예를 들면

: 필드 1 = 5FIELD2 = 10필드 1 = 6 가진 사용자보다는 필드 1 = 5FIELD2 = 9하지만 하부와 사용자보다 높은 갖는 사용자 및 field2 = 2.

모든 사용자의 상위 10 위를 생성하고 싶습니다. 내가 사용하는 YII 프레임 워크의 경우 확인 (30)

20 순위 하위 10 또는 사용자를 선택할 수 있다면 또한 그것은 좋은 것, 그래서 아마 같은 것을 볼 것입니다 :

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

감사를 :)

+0

죄송합니다. 나는 실수로 downvoted. 그리고 나서 제 인터넷이 무너졌고 그것이 다시 돌아 왔을 때 제 표가 잠겼습니다. – topher

+0

@topher 형제를 걱정하지 마십시오 :) +1 –

+0

@topher 알고 계시 겠지만, 질문을 "개선"하면 투표를 변경할 수 있습니까? –

답변

2

CDbCriteria::limitCDbCriteria::order은 sql에서와 같이 사용할 수 있습니다. 따라서 20-30에서 선택하려면

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

감사! 이것은 나를 많이 도왔다. – Shark

2

CDbCritria를 사용하여 시간과 노력에 대한 많은, 그래서 같이 주문을 지정

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

그 필드 1로 정렬해야하고 그 다음에 필드 2