5
테이블에서 마지막 레코드 (즉, MAX(id)
)를 선택하는 방법은 무엇입니까?
다음 문은 확인을 작동하지만, 첫 번째 레코드 선택 :테이블의 마지막 레코드 선택
$statistics = SystemStatisticsHistory::findOne(1);
테이블에서 마지막 레코드 (즉, MAX(id)
)를 선택하는 방법은 무엇입니까?
다음 문은 확인을 작동하지만, 첫 번째 레코드 선택 :테이블의 마지막 레코드 선택
$statistics = SystemStatisticsHistory::findOne(1);
당신이 하나를 역순으로 제한을 적용 할 수있는 최대 id
와 모델을 얻으려면합니다.
SystemStatisticsHistory::find()->orderBy(['id' => SORT_DESC])->one();
또 다른 옵션과 같이 max
와 부속을 사용하는 것입니다
SystemStatisticsHistory::find()
->where(['id' => SystemStatisticsHistory::find()->max('id')])
->one();
마지막 옵션을 사용하여 약간의 미묘한 차이가 있습니다, this question을 확인합니다.
max()
here에 대한 설명서를 확인할 수 있습니다.
저는 개인적으로 첫 번째 변형을 선호합니다.
첫 번째 레코드를 얻으려면 첫 번째 쿼리에서는 SORT_ASC
으로, 두 번째 쿼리에서는 max()
에서 min()
으로 주문 방향을 변경하십시오.
P. 하드 코드 id
은 나쁜 습관입니다.
감사합니다. 그것은 작동합니다! – MaksimK
도와 줘서 기쁩니다. 이 경우 대답을 수락 된 것으로 표시하십시오. – arogachev