Problém:
Chcete omezit počet řádků vyplývajících z dotazu v MySQL, PostgreSQL nebo SQLite.
Příklad:
V exam
tabulka, jsou tam jména studentů s výsledky zkoušky.
name | výsledek_zkoušky |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Chcete získat tři řádky s nejlepšími výsledky testu.
Řešení:
SELECT * FROM exam ORDER BY exam_result DESC LIMIT 3;
Výsledek dotazu vypadá takto:
name | výsledek_zkoušky |
---|---|
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Diskuse:
Nejprve seřaďte řádky podle exam_result
sloupec v sestupném pořadí pomocí ORDER BY
klauzule a DESC
klíčové slovo. Poté za ORDER BY
klauzuli, použijte LIMIT
klíčové slovo s počtem řádků, které chcete vrátit (zde 3
).
ORDER BY exam_result DESC LIMIT 3
Pokud chcete načíst tři řádky náhodně místo tří nejlepších, přeskočte ORDER BY
část.
SELECT * FROM exam LIMIT 3;
Samozřejmě můžete načíst libovolný počet řádků. Stačí nahradit 3 s požadovaným číslem.