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.