Förutsatt att time
är den tidpunkt då posten infogades, detta ger dig de senaste 10 raderna från tabellen:
SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
ORDER BY `time` DESC LIMIT 10
Nu kan du använda resultatet som en tillfällig tabell, sortera det slumpmässigt (eftersom det bara är 10 rader) och returnera en rad:
SELECT * FROM (
SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
ORDER BY `time` DESC LIMIT 10
) AS temptable
ORDER BY RAND()
LIMIT 1