Cách chọn bản ghi cuối cùng (có số MAX(id)
) từ bảng?
tuyên bố Tiếp theo hoạt động OK, nhưng chọn kỷ lục đầu tiên:Chọn bản ghi cuối cùng trong bảng
$statistics = SystemStatisticsHistory::findOne(1);
Cách chọn bản ghi cuối cùng (có số MAX(id)
) từ bảng?
tuyên bố Tiếp theo hoạt động OK, nhưng chọn kỷ lục đầu tiên:Chọn bản ghi cuối cùng trong bảng
$statistics = SystemStatisticsHistory::findOne(1);
Để có được mô hình với tối đa id
bạn có thể áp dụng thứ tự ngược lại và giới hạn một.
SystemStatisticsHistory::find()->orderBy(['id' => SORT_DESC])->one();
Một lựa chọn khác là sử dụng subselect với max
như vậy:
SystemStatisticsHistory::find()
->where(['id' => SystemStatisticsHistory::find()->max('id')])
->one();
Có một số sắc thái sử dụng tùy chọn cuối cùng, kiểm tra this question.
Bạn có thể kiểm tra tài liệu cho max()
here.
Cá nhân tôi thích sử dụng biến thể đầu tiên.
Để nhận bản ghi đầu tiên, chỉ cần thay đổi hướng đơn đặt hàng thành SORT_ASC
trong truy vấn đầu tiên và max()
thành min()
trong truy vấn thứ hai.
P.S. Mã hoá cứng id
là một thực tế không tốt.
Cảm ơn bạn! Nó hoạt động! – MaksimK
Vui mừng được trợ giúp. Đánh dấu câu trả lời là được chấp nhận trong trường hợp này. – arogachev