sql >> Database >  >> RDS >> Mysql

MYSQL SELECT willekeurig op grote tafel ORDER OP SCORE

dus om zoiets als dit te krijgen, zou ik een subquery gebruiken ... op die manier zet je alleen de RAND () op de buitenste query, wat veel minder belastend is.

Van wat ik uit je vraag begreep, wil je 200 mannen van de tafel met de hoogste score... dus dat zou zoiets zijn als dit:

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

om nu 5 resultaten willekeurig te maken, zou het ongeveer zo zijn.

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


  1. MySQL-prestaties:introductie tot JOIN's in SQL

  2. pdo update-instructie met concat werkt niet

  3. Beveiligen tegen SQL-injectie - PDO, mysqli

  4. Postgres om de lijst op te halen met door komma's gescheiden waarden