sql >> Databáze >  >> RDS >> Mysql

MYSQL SELECT náhodně na velké tabulce ORDER BY SCORE

takže k získání něčeho takového bych použil poddotaz.. tímto způsobem vkládáte pouze RAND() na vnější dotaz, což bude mnohem méně náročné.

Z toho, co jsem pochopil z vaší otázky, chcete 200 mužů z tabulky s nejvyšším skóre... takže by to bylo něco takového:

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

teď randomizovat 5 výsledků by to bylo něco takového.

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. Vytvořte databázi MySQL

  2. Jedinečný index MySQL podle více polí

  3. Připojení k databázi MySQL není uzavřeno:co se stane?

  4. Jak mohu připojit databázi k aplikaci v Heroku?