Как выбрать последнюю запись (то есть 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.S. Hardcoded id
- плохая практика.
Спасибо! Оно работает! – MaksimK
Рад помочь. Отметьте ответ как принятый в этом случае. – arogachev