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

Jak omezit výsledky v MySQL, PostgreSQL a SQLite

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.


  1. Nelze použít UPDATE s klauzulí OUTPUT, když je na stole spouštěč

  2. Jak získat maximální a minimální hodnoty z tabulky pomocí agregační funkce - SQL Server / TSQL výukový program, část 129

  3. Jak REVERSE() funguje v MariaDB

  4. Připojení k Postgresql v kontejneru dockeru zvenčí