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

MYSQL SELECT aléatoire sur une grande table ORDER BY SCORE

donc pour obtenir quelque chose comme ça, j'utiliserais une sous-requête .. de cette façon, vous ne mettez que RAND () sur la requête externe, ce qui sera beaucoup moins éprouvant.

D'après ce que j'ai compris de votre question, vous voulez 200 hommes du tableau avec le score le plus élevé... donc ce serait quelque chose comme ça :

SELECT * 
FROM table_name
WHERE age = 'male'
ORDER BY score DESC
LIMIT 200

maintenant, pour randomiser 5 résultats, ce serait quelque chose comme ça.

SELECT id, score, name, age, sex
FROM
(   SELECT * 
    FROM table_name
    WHERE age = 'male'
    ORDER BY score DESC
    LIMIT 200
) t -- could also be written `AS t` or anything else you would call it
ORDER BY RAND()
LIMIT 5