logo

MySQL-grense

MySQL Limit-spørring brukes til begrense antall rader returnerer fra resultatsettet, i stedet for henter hele settet i MySQL-databasen. Limit-leddet fungerer med SELECT-setningen for kun å returnere det angitte antallet rader. Denne spørringen aksepterer bare ett eller to argumenter, og verdiene deres skal være null eller et positivt heltall.

Det er viktig i et slikt tilfelle når tabellen inneholder tusenvis av rader, eller du vil returnere kun de nylig innsatte dataene. Med andre ord, hvis du ikke er interessert i å få alle radene returnert fra spørringen, bruk MySQL Limit-klausulen med SELECT-setningen. Det forbedrer ytelsen til spørringen og slutter til og med å ha krasjet systemet når tabellen inneholder et stort antall data.

For å få bare de spesifiserte radene fra tabellen, bruker MySQL GRENSE klausul, mens SQL bruker TOPP klausulen, og Oracle bruker ROWNUM klausul med PLUKKE UT uttalelse.

Syntaks

Følgende er syntaksen for å bruke Limit-søk i MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

I syntaksen ovenfor kan vi se:

Column_list: Det er navnet på kolonnen du vil returnere.

Tabellnavn: Det er navnet på tabellen som inneholder kolonnenavnet ditt.

Offset: Den spesifiserer nummeret på en rad du vil returnere fra. Forskyvningen av raden starter fra 0, ikke 1.

Telle: Den spesifiserer maksimalt antall rader du vil returnere.

Følgende visuelle representasjon forklarer det tydeligere:

MySQL-grense

MERK: Hvis du spesifiserer bare ett argument med Limit-leddet, antar MySQL dette for å bestemme maksimalt antall rader for å returnere utdata fra resultatsettet. I så fall er Limit-klausulargumenter, offset og tellingen ekvivalent.

LIMIT-klausul med ORDER BY-klausul

Brukeren må bruke Limit-klausulen med Order By-klausulen. Uten å bruke Order By-klausul får du resultatet i en uspesifisert rekkefølge . I så fall er det vanskelig å vite at spørringen returnerer resultatet fra hvilke rader. Så det er en god vane å bruke Grupper etter klausul med en Limit-klausul for å få radene i en bestemt rekkefølge.

Følgende syntaks kan brukes for å få resultatet i en unik rekkefølge:

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

Eksempler på MySQL Limit

La oss lage en eksempeltabell i databasen som inneholder følgende data og forstå hvordan Limit-klausulen fungerer i MySQL ved å bruke forskjellige eksempler:

Tabell: ansatte

MySQL-grense

1. MySQL Limit for å returnere høyeste eller laveste rader

Følgende uttalelse pleide å få de fem beste yngre ansatte:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Denne setningen sorterer først ansattes alder ved å bruke Group By-klausul, og deretter gir Limit-klausulen topp-fem-resultatet. Etter å ha utført trinnene ovenfor, vil vi få følgende utgang:

MySQL-grense

2. MySQL Limit for å få en rekke rader ved bruk av offset

Noen ganger ønsker du å få et resultat mellom verdiområdene. For eksempel har du et stort antall rader for å vise data på applikasjoner, deretter deler du det inn i sider, og hver side inneholder maksimalt 10 rader i en tabell. I så fall kan du bruke følgende spørring for å få en rekke rader:

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

Denne setningen returnerer radene som starter fra rad nummer 3 og går til maksimalt 7. rad. Den sorterer også inntekten til den ansatte i høyeste til laveste rekkefølge. Utfør spørringen, og du vil få følgende utdata:

hvordan oppgraderer jeg java
MySQL-grense

3. MySQL-grense med WHERE-klausul

MySQL Limit kan også arbeides med WHERE-klausulen. Den sjekker først den angitte tilstanden i tabellen og produserer radene som samsvarte med betingelsen.

Denne spørringen velger de første fem ansatte som har en alder over 30 år. Her brukte vi også Ordre etter-klausulen for å sortere de ansatte i synkende rekkefølge ved å bruke inntektene deres.

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

Etter vellykket utførelse av setningen ovenfor, vil vi få følgende utgang:

MySQL-grense

4. MySQL LIMIT for å få den n'te høyeste eller laveste verdien

Noen ganger ønsker vi å få radene med n'te høyeste eller laveste verdi. I så fall kan vi bruke følgende MySQL LIMIT-klausul for å få det forventede resultatet:

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

I denne syntaksen returnerer LIMIT n-1, 1-leddet 1 rad som starter på rad n.

Følgende spørring returnerer for eksempel ansattinformasjonen som har den nest høyeste inntekten:

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

Ved å utføre setningen ovenfor, vil den gi følgende spørring:

MySQL-grense

Det skal bemerkes at søket ovenfor bare fungerer når tabellen din ikke inneholder to ansatte som har en viss inntekt. I så fall vil vi bruke DENSE_RANK () for å få et mer nøyaktig resultat.