logo

MySQL-limiet

MySQL Limit-query wordt gebruikt om beperken het aantal rijen retourneert uit de resultatenset, in plaats van ophalen de hele set in de MySQL-database. De Limit-clausule werkt met de SELECT-instructie om alleen het opgegeven aantal rijen te retourneren. Deze query accepteert slechts één of twee argumenten, en hun waarden moeten nul of een positief geheel getal zijn.

Dit is essentieel in een dergelijk geval als de tabel duizenden rijen bevat, of als u alleen de recentelijk ingevoegde gegevens wilt retourneren. Met andere woorden: als u niet geïnteresseerd bent in het terugkrijgen van alle rijen uit de query, gebruikt u de MySQL Limit-clausule met de SELECT-instructie. Het verbetert de prestaties van de query en voorkomt zelfs dat het systeem crasht als de tabel een groot aantal gegevens bevat.

Om alleen de opgegeven rijen uit de tabel te halen, gebruikt MySQL de BEGRENZING -clausule, terwijl SQL de BOVENKANT -clausule, en Oracle gebruikt de ROWNUM clausule met de SELECTEER stelling.

Syntaxis

Hieronder vindt u de syntaxis voor het gebruik van Limit-query in MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

In de bovenstaande syntaxis kunnen we zien:

Kolomlijst: Het is de naam van de kolom die u wilt retourneren.

Tafel naam: Het is de naam van de tabel die uw kolomnaam bevat.

Offset: Het specificeert het nummer van een rij waaruit u wilt terugkeren. De offset van de rij begint vanaf 0, niet vanaf 1.

Graaf: Het specificeert het maximale aantal rijen dat u wilt retourneren.

De volgende visuele weergave legt het duidelijker uit:

MySQL-limiet

OPMERKING: Als u slechts één argument opgeeft met de Limit-clausule, gaat MySQL ervan uit dat dit het maximale aantal rijen bepaalt voor het retourneren van uitvoer uit de resultatenset. In dat geval zijn de argumenten van de Limit-clausule, de offset en het aantal gelijkwaardig.

LIMIT-clausule met ORDER BY-clausule

De gebruiker moet de Limit-clausule gebruiken met de Order By-clausule. Zonder de Order By-clausule te gebruiken, krijgt u het resultaat in een niet gespecificeerde bestelling . In dat geval is het moeilijk om te weten uit welke rijen de query het resultaat retourneert. Het is dus een goede gewoonte om te gebruiken Group By-clausule met een Limit-clausule om de rijen in een specifieke volgorde te krijgen.

De volgende syntaxis kan worden gebruikt om het resultaat in een unieke volgorde te krijgen:

 SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count; 

Voorbeelden van MySQL-limieten

Laten we een voorbeeldtabel in de database maken die de volgende gegevens bevat en aan de hand van verschillende voorbeelden begrijpen hoe de Limit-clausule in MySQL werkt:

Tabel: medewerkers

MySQL-limiet

1. MySQL-limiet om de hoogste of laagste rijen te retourneren

De volgende verklaring werd gebruikt om de top vijf van jongere werknemers te bepalen:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Deze verklaring sorteert eerst de leeftijd van de werknemer met behulp van de Group By-clausule, en vervolgens retourneert de Limit-clausule het top vijf-resultaat. Na het uitvoeren van de bovenstaande stappen krijgen we de volgende uitvoer:

MySQL-limiet

2. MySQL-limiet om een ​​reeks rijen te verkrijgen met behulp van offset

Soms wilt u een resultaat krijgen dat tussen de waardenbereiken ligt. U hebt bijvoorbeeld een groot aantal rijen om gegevens over applicaties weer te geven en deze vervolgens in pagina's te verdelen, en elke pagina bevat maximaal 10 rijen in een tabel. In dat geval kunt u de volgende query gebruiken om een ​​reeks rijen op te halen:

 SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7; 

Deze instructie retourneert de rijen vanaf rijnummer 3 en gaat tot maximaal de 7e rij. Het sorteert ook het inkomen van de werknemer van hoog naar laag. Voer de query uit en u krijgt de volgende uitvoer:

grafiek voor toewijzing van middelen
MySQL-limiet

3. MySQL-limiet met WHERE-clausule

MySQL Limit kan ook worden gebruikt met de WHERE-clausule. Het controleert eerst de opgegeven voorwaarde in de tabel en produceert de rijen die aan de voorwaarde voldoen.

Met deze zoekopdracht worden de eerste vijf werknemers geselecteerd die ouder zijn dan 30 jaar. Hier hebben we ook de Order By-clausule gebruikt om de werknemers in aflopende volgorde te sorteren op basis van hun inkomen.

 SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5; 

Na succesvolle uitvoering van de bovenstaande instructie krijgen we de volgende uitvoer:

MySQL-limiet

4. MySQL LIMIT om de n-de hoogste of laagste waarde te krijgen

Soms willen we de rijen met de n-de hoogste of laagste waarde krijgen. In dat geval kunnen we de volgende MySQL LIMIT-clausule gebruiken om het verwachte resultaat te krijgen:

 SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1; 

In deze syntaxis retourneert de clausule LIMIT n-1, 1 1 rij die begint bij rij n.

Met de volgende query worden bijvoorbeeld de werknemersgegevens geretourneerd die het op een na hoogste inkomen hebben:

 SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1; 

Als de bovenstaande verklaring wordt uitgevoerd, wordt de volgende vraag weergegeven:

MySQL-limiet

Opgemerkt moet worden dat de bovenstaande zoekopdracht alleen werkt als uw tabel geen twee werknemers bevat die wel enig inkomen hebben. In dat geval zullen we gebruiken DENSE_RANK () om een ​​nauwkeuriger resultaat te krijgen.