Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySql randomise les 10 dernières lignes

En supposant que time est l'heure à laquelle l'enregistrement a été inséré, cela vous donnera les 10 dernières lignes de la table :

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

Maintenant, vous pouvez utiliser le résultat comme tableau temporaire, le trier de manière aléatoire (car il ne contient que 10 lignes) et renvoyer une ligne :

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