sql >> Base de Datos >  >> RDS >> Mysql

MySql aleatoriza las últimas 10 filas

Suponiendo que time es la hora en que se insertó el registro, obtendrá las últimas 10 filas de la tabla:

SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
  ORDER BY `time` DESC LIMIT 10

Ahora, puede usar el resultado como una tabla temporal, ordenarlo aleatoriamente (ya que solo tiene 10 filas) y devolver una fila:

SELECT * FROM (
  SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
    ORDER BY `time` DESC LIMIT 10
) AS temptable 
ORDER BY RAND()
LIMIT 1