SQL LIMIT: Wie du Datensätze eingrenzen kannst

    Avatarbild von Perica Glavas
    Perica Glavas

    veröffentlicht am: 31.03.2020
    zuletzt aktualisiert am: 07.02.2023

    SQL LIMIT: Anzahl der ausgegebenen Zeilen limitieren!

    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!

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch SQL und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig