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.