Problem:
Du vill begränsa antalet rader som kommer från en fråga i MySQL, PostgreSQL eller SQLite.
Exempel:
I exam
tabell, det finns namn på eleverna med resultaten av tentamen.
namn | exam_result |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Du vill få de tre raderna med de bästa provresultaten.
Lösning:
SELECT * FROM exam ORDER BY exam_result DESC LIMIT 3;
Resultatet av frågan ser ut så här:
namn | exam_result |
---|---|
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Diskussion:
Sortera först raderna efter exam_result
kolumnen i fallande ordning med ORDER BY
satsen och DESC
nyckelord. Sedan, efter ORDER BY
sats, använd LIMIT
nyckelord med ett antal rader som du vill returnera (här, 3
).
ORDER BY exam_result DESC LIMIT 3
Om du vill hämta tre rader slumpmässigt istället för de tre bästa, hoppa över ORDER BY
del.
SELECT * FROM exam LIMIT 3;
Naturligtvis kan du hämta hur många rader du vill. Byt bara ut 3 med önskat nummer.