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

MYSQL SELECCIONA al azar en una tabla grande ORDENAR POR PUNTUACIÓN

entonces, para obtener algo como esto, usaría una subconsulta ... de esa manera solo está poniendo RAND() en la consulta externa, lo que será mucho menos exigente.

Por lo que entendí de tu pregunta, quieres 200 hombres de la tabla con la puntuación más alta... así que sería algo como esto:

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

ahora para aleatorizar 5 resultados sería algo como esto.

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