sql >> Database >  >> RDS >> Mysql

LIMIET dan RAND in plaats van RAND dan LIMIT

Dit doe je met een inner select. Selecteer de bovenste twintig rijen in de binnenste selectie. In de buitenste selectie rangschikt u deze rijen willekeurig en selecteert u de top vijf:

SELECT *
FROM (
    SELECT *
    FROM table1
    ORDER BY score DESC
    LIMIT 20
) AS T1
ORDER BY RAND()
LIMIT 5



  1. Hoe kan ik ervoor zorgen dat een subquery slechts één rij retourneert?

  2. Records ophalen uit een specifieke kolom in oracle

  3. EXISTS vs JOIN en gebruik van de EXISTS-clausule

  4. Hoe u onbedoelde gegevensverwijdering in MySQL en MariaDB kunt voorkomen