Du liest:
SQL LIMIT: Wie du Datensätze eingrenzen kannst

SQL LIMIT: Wie du Datensätze eingrenzen kannst

von Pero
31.03.2020
Jetzt MySQL programmieren lernen

Arbeitest du gerade mit Tausenden von Datensätzen und die Abfragen dauern zu lange?
Oder möchtest du nur die ersten paar Zeilen sehen, um zu gucken, ob deine Abfrage richtig ist?
Die SQL LIMIT Funktion wird dir helfen genau das zu lösen.

Was ist das SQL LIMIT?

Kurz und knapp: Die Funktion hilft dir dabei, deine Resultate einer SQL Abfrage einzugrenzen.
Das ist vor allem dann nützlich, wenn du mit großen Datenmengen arbeitest und du beispielsweise deine MySQL Statements auf Korrektheit überprüfen willst.

Wie nutze ich die SQL LIMIT Funktion?

Die Limit Funktion ist vor allem bei MySQL oder PostgreSQL Datenbanken gängig.
Dort wird das Limit am Ende einer Abfrage gesetzt um die Ergebnisse der Abfrage einzugrenzen.

Unsere Beispieldaten

Stell dir vor, du arbeitest in einem Kundencenter und du möchtest herausfinden, mit welchen Kunden du diesen Monat gearbeitet hast.
Dabei hast du die bei deiner Einstellung die Bearbeiter-ID 004 zugewiesen bekommen.
Hier ist die Struktur unserer Datenbank kunden2020.

kundenidvornamenachnamebearbeiterid
1MichaelGeber4
2JohannaMüller4
17StefanPeters4
18JackMa6

MySQL LIMIT

Um unsere Abfrage erstmal zu testen, setzen wir die das LIMIT auf 1, um zu gucken, ob wir die richtigen Daten empfangen.
Also haben wir dann folgende MySQL LIMIT Abfrage:

SELECT *
FROM kunden2020
WHERE bearbeiterid = 4
ORDER BY kundenid
LIMIT 1;

Aus dieser Abfrage erhalten wir dann folgendes Result-Set als Antwort:

kundenidvornamenachnamebearbeiterid
1MichaelGeber4

Die MySQL-Datenbank hört nach dem ersten Suchergebnis auf zu suchen und gibt dir das erste Ergebnis aus.

MySQL LIMIT Offset

Möchtest du beispielsweise deine Daten erst ab dem zweiten Datensatz als Result bekommen, kannst du dazu noch einen weiteren Parameter nutzen.

SELECT *
FROM kunden2020
WHERE bearbeiterid = 4
ORDER BY kundenid
LIMIT 5, 15;

Mit dieser Abfrage wählst du maximal 15 Elemente aus, beginnend ab dem 5.Element, das heißt die Resultate 6-20.
Aufgepasst! Der erste Parameter 5 ist nicht inklusive!
Du kriegst bei dem oben gezeigten Beispiel die Resultate 6-20 und nicht 5-20!

PostgreSQL LIMIT

Bei PostgreSQL läuft die LIMIT Abfrage genauso wie bei MySQL ab.
Somit hätten wir bei folgender Abfrage:

SELECT *
FROM kunden2020
WHERE bearbeiterid = 4
ORDER BY kundenid
LIMIT 2;

Folgendes Resultat:

kundenidvornamenachnamebearbeiterid
1MichaelGeber4
2JohannaMüller4

PostgreSQL LIMIT Offset

Zwar ist die Nutzung des normalen Limits bei PostgreSQL identisch zu dem von MySQL, jedoch gibt es bei der Nutzung eines zweiten Parameters einige Unterschiede zu beachten.
Um die vorherige MySQL Abfrage in PostgreSQL umsetzen zu können, muss der Code umgeschrieben werden.

SELECT *
FROM kunden2020
WHERE bearbeiterid = 4
ORDER BY kundenid
LIMIT 5
OFFSET 15;

Dabei wird das Komma durch ein OFFSET ersetzt, die Bedeutung ist jedoch identisch. Es werden die ersten 15 Resultate nach dem 5. Resultat angezeigt.
Aufgepasst! Hier gilt auch, dass die Zahl hinter dem LIMIT nicht inklusive ist.
Das heißt, wir kriegen die Resultate 6-20!

Fazit

Die SQL Limit Funktion hilft uns SQL Statements effektiver und schneller zu testen! Zudem können wir uns mit einem Offset die ersten x-Resultate nach dem x-ten Datensatz zeigen lassen.

Hast du noch Fragen oder einen besseren Weg das Problem zu lösen?
Oder hat dir der Beitrag gefallen?
Teil uns das gerne in den Kommentaren mit!



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar