Giả sử rằng time
là thời điểm bản ghi được chèn, điều này sẽ giúp bạn có 10 hàng mới nhất từ bảng:
SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
ORDER BY `time` DESC LIMIT 10
Bây giờ, bạn có thể sử dụng kết quả như một bảng tạm thời, sắp xếp nó một cách ngẫu nhiên (vì nó chỉ có 10 hàng) và trả về một hàng:
SELECT * FROM (
SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
ORDER BY `time` DESC LIMIT 10
) AS temptable
ORDER BY RAND()
LIMIT 1