logo

MySQL-grænse

MySQL Limit-forespørgsel er vant til begrænse antallet af rækker returnerer fra resultatsættet i stedet for henter hele sættet i MySQL-databasen. Limit-sætningen fungerer med SELECT-sætningen til kun at returnere det angivne antal rækker. Denne forespørgsel accepterer kun et eller to argumenter, og deres værdier skal være nul eller et positivt heltal.

Det er vigtigt i et sådant tilfælde, når tabellen indeholder tusindvis af rækker, eller du kun ønsker at returnere de nyligt indsatte data. Med andre ord, hvis du ikke er interesseret i at få alle rækkerne returneret fra forespørgslen, skal du bruge MySQL Limit-sætningen med SELECT-sætningen. Det forbedrer ydelsen af ​​forespørgslen og stopper endda med at have styrtet systemet ned, når tabellen indeholder et stort antal data.

For kun at få de angivne rækker fra tabellen, bruger MySQL BEGRÆNSE klausul, hvorimod SQL bruger TOP klausulen, og Oracle bruger ROWNUM klausul med VÆLG udmelding.

Syntaks

Følgende er syntaksen for at bruge Limit-forespørgsel i MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

I ovenstående syntaks kan vi se:

Column_list: Det er navnet på den kolonne, du vil returnere.

Tabel_navn: Det er navnet på den tabel, der indeholder dit kolonnenavn.

Offset: Det angiver nummeret på en række, som du vil vende tilbage fra. Forskydningen af ​​rækken starter fra 0, ikke 1.

Tælle: Det angiver det maksimale antal rækker, du vil returnere.

Følgende visuelle repræsentation forklarer det mere tydeligt:

MySQL-grænse

BEMÆRK: Hvis du kun angiver ét argument med Limit-sætningen, antager MySQL dette for at bestemme det maksimale antal rækker for at returnere output fra resultatsættet. I så fald er Limit-klausul-argumenter, offset, og optællingen ækvivalent.

LIMIT-klausul med ORDER BY-klausul

Brugeren skal bruge Limit-klausulen med Order By-klausulen. Uden at bruge Order By-klausul får du resultatet i en uspecificeret rækkefølge . I så fald er det svært at vide, om forespørgslen returnerer resultatet fra hvilke rækker. Så det er en god vane at bruge Grupper efter klausul med en Limit-klausul for at få rækkerne i en bestemt rækkefølge.

Følgende syntaks kan bruges til at få resultatet i en unik rækkefølge:

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

Eksempler på MySQL Limit

Lad os oprette en eksempeltabel i databasen, der indeholder følgende data og forstå, hvordan Limit-klausul fungerer i MySQL ved hjælp af forskellige eksempler:

Tabel: medarbejdere

MySQL-grænse

1. MySQL Limit for at returnere højeste eller laveste rækker

Følgende udsagn bruges til at få top fem yngre medarbejdere:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Denne erklæring sorterer først medarbejdernes alder ved hjælp af Group By-klausul, og derefter returnerer Limit-klausulen top-fem-resultatet. Efter at have udført ovenstående trin, får vi følgende output:

MySQL-grænse

2. MySQL Limit for at få en række rækker ved hjælp af offset

Nogle gange ønsker du at få et resultat mellem værdiintervallerne. For eksempel har du et stort antal rækker til at vise data på applikationer, og opdel det derefter i sider, og hver side indeholder maksimalt 10 rækker i en tabel. I så fald kan du bruge følgende forespørgsel til at få en række rækker:

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

Denne erklæring returnerer rækkerne fra række nummer 3 og går til maksimalt 7. rækker. Det sorterer også lønmodtagerens indkomst i højeste til laveste orden. Udfør forespørgslen, og du vil få følgende output:

java læsning csv
MySQL-grænse

3. MySQL-grænse med WHERE-klausul

MySQL Limit kan også arbejdes med WHERE-klausulen. Den kontrollerer først den angivne betingelse i tabellen og producerer de rækker, der matchede betingelsen.

Denne forespørgsel udvælger de første fem medarbejdere, hvis alder er over 30 år. Her brugte vi også Order By-klausulen til at sortere medarbejderne i faldende rækkefølge ved hjælp af deres indkomst.

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

Efter vellykket udførelse af ovenstående sætning, vil vi få følgende output:

MySQL-grænse

4. MySQL LIMIT for at få den n'te højeste eller laveste værdi

Nogle gange ønsker vi at få rækkerne med n'te højeste eller laveste værdi. I så fald kan vi bruge følgende MySQL LIMIT-klausul for at få det forventede resultat:

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

I denne syntaks returnerer LIMIT n-1, 1-sætningen 1 række, der starter ved rækken n.

For eksempel returnerer følgende forespørgsel de medarbejderoplysninger, der har den næsthøjeste indkomst:

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

Ved at udføre ovenstående sætning vil den give følgende forespørgsel:

MySQL-grænse

Det skal bemærkes, at ovenstående forespørgsel kun virker, når din tabel ikke indeholder to medarbejdere, der har en vis indkomst. I så fald vil vi bruge DENSE_RANK () for at få et mere præcist resultat.