Problem:
Chcesz ograniczyć liczbę wierszy wynikających z zapytania w MySQL, PostgreSQL lub SQLite.
Przykład:
Na exam
w tabeli znajdują się nazwiska uczniów z wynikami egzaminu.
nazwa | exam_result |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anna Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Chcesz uzyskać trzy wiersze z najlepszymi wynikami egzaminu.
Rozwiązanie:
SELECT * FROM exam ORDER BY exam_result DESC LIMIT 3;
Wynik zapytania wygląda tak:
nazwa | exam_result |
---|---|
Taya Bain | 11 |
Anna Johnson | 11 |
Josh Kaur | 10 |
Dyskusja:
Najpierw posortuj wiersze według exam_result
kolumna w kolejności malejącej przy użyciu ORDER BY
klauzula i DESC
słowo kluczowe. Następnie po ORDER BY
klauzula, użyj LIMIT
słowo kluczowe z liczbą wierszy, które chcesz zwrócić (tutaj 3
).
ORDER BY exam_result DESC LIMIT 3
Jeśli chcesz pobrać losowo trzy wiersze zamiast trzech najlepszych, pomiń ORDER BY
część.
SELECT * FROM exam LIMIT 3;
Oczywiście możesz pobrać dowolną liczbę wierszy. Wystarczy wymienić 3 z wybranym numerem.