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

Sådan begrænser du resultater i MySQL, PostgreSQL og SQLite

Problem:

Du vil begrænse antallet af rækker, der stammer fra en forespørgsel i MySQL, PostgreSQL eller SQLite.

Eksempel:

I exam tabel, er der navne på eleverne med resultaterne af eksamen.

navn eksamen_resultat
Janet Morgen 9
Taya Bain 11
Anne Johnson 11
Josh Kaur 10
Ellen Thornton 8

Du ønsker at få de tre rækker med de bedste eksamensresultater.

Løsning:

SELECT *
FROM exam
ORDER BY exam_result DESC
LIMIT 3;

Resultatet af forespørgslen ser således ud:

navn eksamen_resultat
Taya Bain 11
Anne Johnson 11
Josh Kaur 10

Diskussion:

Sorter først rækkerne efter exam_result kolonne i faldende rækkefølge ved hjælp af ORDER BY klausulen og DESC søgeord. Derefter, efter ORDER BY klausul, brug LIMIT søgeord med et antal rækker, du gerne vil returnere (her 3). ).

ORDER BY exam_result DESC
LIMIT 3

Hvis du gerne vil hente tre rækker tilfældigt i stedet for de bedste tre, skal du springe ORDER BY over del.

SELECT *
FROM exam
LIMIT 3;

Du kan selvfølgelig hente et hvilket som helst antal rækker du ønsker. Bare udskift 3 med dit ønskede nummer.


  1. Undgå at gemme ændringer, der kræver, at tabellen genskabes negative effekter

  2. execSQL() med OPDATERING opdateres ikke

  3. SQL Server-strengsammenkædning med Null

  4. Fejlfinding af langvarige forespørgsler i MS SQL Server