Za předpokladu, že time
je čas, kdy byl vložen záznam, dostanete posledních 10 řádků z tabulky:
SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
ORDER BY `time` DESC LIMIT 10
Nyní můžete výsledek použít jako dočasnou tabulku, seřadit ji náhodně (protože má pouze 10 řádků) a vrátit jeden řádek:
SELECT * FROM (
SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
ORDER BY `time` DESC LIMIT 10
) AS temptable
ORDER BY RAND()
LIMIT 1