So wählst du die obersten N Zeilen in MySQL aus
Die obersten N Zeilen einer Tabelle auszuwählen, ist eine grundlegende Aufgabe bei der Arbeit mit Datenbanken. In diesem Tutorial zeigen wir dir anhand praktischer Beispiele, wie das in MySQL geht.
Bevor du weiterliest, wollte ich dir kurz unseren modernen MySQL-Client Beekeeper Studio vorstellen. Öffne eine Tabelle und er blättert die Zeilen für dich durch, oder klick sie mit rechts an und wähle SQL: Select Top, um die Abfrage zu bekommen. Für MySQL ist er kostenlos, lade ihn hier herunter.
Die LIMIT-Klausel verwenden
Mit der LIMIT-Klausel legst du in MySQL ganz einfach fest, wie viele Zeilen eine Abfrage zurückgeben soll.
Beispiel: Die obersten 5 Zeilen auswählen
Angenommen, du hast eine Tabelle namens employees mit folgendem Schema:
CREATE TABLE employees (
id INT,
name VARCHAR(100),
salary DECIMAL(10, 2)
);
Du möchtest die 5 Mitarbeitenden mit dem höchsten Gehalt in absteigender Reihenfolge auswählen.
SELECT id, name, salary
FROM employees
ORDER BY salary DESC
LIMIT 5;
Warum es funktioniert:
-
ORDER BY salary DESCsortiert die Zeilen vom höchsten zum niedrigsten Gehalt. -
LIMIT 5beschränkt die Ausgabe nach dem Sortieren auf die ersten 5 Zeilen.
Erwartete Ausgabe:
+----+----------+--------+
| id | name | salary |
+----+----------+--------+
| 3 | Alice | 90000 |
| 5 | Bob | 85000 |
| 2 | Charlie | 75000 |
| 6 | Diana | 70000 |
| 4 | Edward | 68000 |
+----+----------+--------+
Gleichstände mit LIMIT behandeln
Bei Gleichständen liefert LIMIT allein ohne zusätzliche Behandlung womöglich keine konsistenten Ergebnisse. Nutze ORDER BY mit weiteren Spalten, um Gleichstände aufzulösen.
Beispiel: Gleichstände mit einer zweiten Sortierung auflösen
Um gleiche Gehälter zu behandeln, sortierst du zusätzlich nach der id der Mitarbeitenden:
SELECT id, name, salary
FROM employees
ORDER BY salary DESC, id ASC
LIMIT 5;
Warum es funktioniert:
- Durch
id ASCwerden bei gleichem Gehalt immer die Mitarbeitenden mit der niedrigerenidausgewählt.
LIMIT für die Paginierung verwenden
Neben der Auswahl der obersten N Zeilen müssen wir Ergebnisse oft paginieren, indem wir einen bestimmten Zeilenbereich auswählen.
Beispiel: Die nächsten 5 Zeilen auswählen
So paginierst du die Ergebnisse und wählst nach Gehalt die Zeilen 6–10 aus:
SELECT id, name, salary
FROM employees
ORDER BY salary DESC
LIMIT 5 OFFSET 5;
Warum es funktioniert:
-
LIMIT 5legt die Anzahl der zurückgegebenen Zeilen fest. -
OFFSET 5überspringt die ersten 5 Zeilen.
Erwartete Ausgabe:
Die nächsten 5 Mitarbeitenden nach den ersten 5:
+----+---------+--------+
| id | name | salary |
+----+---------+--------+
| 1 | Frank | 67000 |
| 7 | Grace | 64000 |
| 8 | Hannah | 60000 |
| 9 | Ivan | 59000 |
| 10 | Jane | 58000 |
+----+---------+--------+
Fazit
Mit der LIMIT-Klausel wählst du die obersten N Zeilen in MySQL effizient und einfach aus. Wenn Gleichstände möglich sind, sorg mit zusätzlichen Spalten in ORDER BY für eine stabile Sortierung. Diese einfache Technik ist für viele Anwendungen unverzichtbar, etwa für Analysen und Reporting, besonders bei großen Datenmengen.
Wenn du diese Techniken beherrschst, hast du mehr Kontrolle über das Abrufen und Bearbeiten von Daten in MySQL.
Beekeeper Studio ist eine kostenlose & Open-Source-MySQL-GUI
Ich nutze Beekeeper Studio in letzter Zeit für meine MySQL-Arbeit und es ist schnell zu einem meiner liebsten Datenbank-Tools geworden. Die Oberfläche ist aufgeräumt, modern und ablenkungsfrei, sodass man sich ganz auf die Abfragen konzentrieren kann, ohne das Durcheinander mancher anderer Tools. - Surendra Singh
Beekeeper Studio ist ein schneller, intuitiver und einfach zu bedienender MySQL-Client. Er unterstützt auch jede Menge anderer Datenbanken und läuft super unter Windows, Mac und Linux.
Was MySQL-Nutzer über Beekeeper Studio sagen
Ich habe mich nach Jahren mit phpMyAdmin für dieses Programm entschieden – es fühlt sich an, als würde man eine Welt höherer Qualität betreten; hier hatte ich wirklich das Gefühl, dass man sich ernsthaft um den Nutzer kümmert. Das Konzept an sich, die Umsetzung, die praktische Erfahrung – für all das bin ich Matthew aufrichtig dankbar.
Fantastisches Tool, die praktischste IDE, die ich bisher für die Administration von Postgres- und MySql-Datenbanken gefunden habe – sie funktioniert einfach, ganz ohne Umstände :-)