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

LIMIT puis RAND plutôt que RAND puis LIMIT

Vous pouvez le faire en utilisant une sélection interne. Sélectionnez les vingt premières lignes dans la sélection interne. Dans la sélection externe, ordonnez ces lignes au hasard et sélectionnez les cinq premières :

SELECT *
FROM (
    SELECT *
    FROM table1
    ORDER BY score DESC
    LIMIT 20
) AS T1
ORDER BY RAND()
LIMIT 5