Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MYSQL SELECT aleatório na tabela grande ORDER BY SCORE


então, para obter algo assim, eu usaria uma subconsulta .. dessa forma, você está apenas colocando o RAND() na consulta externa, o que será muito menos desgastante.

Pelo que entendi da sua pergunta, você quer 200 homens da tabela com a pontuação mais alta... então seria algo assim:
SELECT * 
FROM table_name
WHERE age = 'male'
ORDER BY score DESC
LIMIT 200

agora para randomizar 5 resultados seria algo assim.
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