sql >> Database teknologi >  >> RDS >> Mysql

LIMIT derefter RAND i stedet for RAND derefter LIMIT

Du kan gøre dette ved hjælp af en indre markering. Vælg de øverste tyve rækker i det indre udvalg. I den ydre markering rækkefølger disse rækker tilfældigt og vælg de fem øverste:

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



  1. da jeg brugte find_by_sql alias, blev jeg forvirret

  2. Fjern dublerede rækker baseret på felt i en udvalgt forespørgsel med PostgreSQL?

  3. højre join versus venstre join

  4. Effektiv måde at opdatere alle rækker i en tabel