logo

MySQL-rajoitus

MySQL Limit kysely on tottunut rajoittaa rivien määrä palauttaa tulosjoukon sijaan hakeminen koko joukko MySQL-tietokannassa. Limit-lause toimii SELECT-käskyn kanssa vain määritetyn rivimäärän palauttamiseksi. Tämä kysely hyväksyy vain yhden tai kaksi argumenttia, ja niiden arvojen tulee olla nolla tai mikä tahansa positiivinen kokonaisluku.

Se on välttämätöntä silloin, kun taulukko sisältää tuhansia rivejä tai haluat palauttaa vain äskettäin lisätyt tiedot. Toisin sanoen, jos et ole kiinnostunut saamaan kaikki kyselyn rivit takaisin, käytä MySQL Limit -lausetta SELECT-käskyn kanssa. Se parantaa kyselyn suorituskykyä ja jopa lopettaa järjestelmän kaatumisen, kun taulukko sisältää suuren määrän tietoja.

MySQL käyttää vain määritetyt rivit taulukosta RAJA lauseke, kun taas SQL käyttää TOP lauseke, ja Oracle käyttää RIVINUMERO lausekkeen kanssa VALITSE lausunto.

Syntaksi

Seuraavassa on Limit-kyselyn käytön syntaksi MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

Yllä olevassa syntaksissa voimme nähdä:

Column_list: Se on sen sarakkeen nimi, jonka haluat palauttaa.

Taulukon_nimi: Se on sen taulukon nimi, joka sisältää sarakkeen nimen.

Offset: Se määrittää sen rivin numeron, josta haluat palata. Rivin siirtymä alkaa 0:sta, ei 1:stä.

Kreivi: Se määrittää palautettavien rivien enimmäismäärän.

Seuraava visuaalinen esitys selittää sen selkeämmin:

MySQL-rajoitus

HUOMAUTUS: Jos määrität vain yhden argumentin Limit-lauseella, MySQL olettaa tämän määrittääkseen rivien enimmäismäärän tulosjoukosta palautettavaksi. Siinä tapauksessa Limit-lauseargumentit, offset ja määrä ovat samat.

LIMIT-lauseke ORDER BY -lausekkeella

Käyttäjän tulee käyttää Limit - lauseketta Order By - lausekkeen kanssa . Ilman Order By -lauseketta, saat tuloksen an määrittelemätön tilaus . Siinä tapauksessa on vaikea tietää, millä riveillä kysely palauttaa tuloksen. Joten se on hyvä tapa käyttää Ryhmä lausekkeen mukaan jossa on Limit-lauseke rivien saamiseksi tiettyyn järjestykseen.

Seuraavaa syntaksia voidaan käyttää tulosten saamiseksi yksilölliseen järjestykseen:

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

MySQL-rajoitusesimerkkejä

Luodaan tietokantaan esimerkkitaulukko, joka sisältää seuraavat tiedot, ja ymmärrämme kuinka Limit-lause toimii MySQL:ssä useiden esimerkkien avulla:

Taulukko: työntekijät

MySQL-rajoitus

1. MySQL Limit palauttaa korkeimmat tai alimmat rivit

Seuraavalla lausunnolla saatiin viisi parasta nuorempaa työntekijää:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Tämä lauseke lajittelee ensin työntekijän iän Group By -lauseen avulla, ja sitten Limit-lause palauttaa viiden parhaan tuloksen. Yllä olevien vaiheiden suorittamisen jälkeen saamme seuraavan tuloksen:

MySQL-rajoitus

2. MySQL Limit saadaksesi rivivälin offsetin avulla

Joskus haluat saada tuloksen arvoalueiden välillä. Sinulla on esimerkiksi suuri määrä rivejä sovellusten tietojen näyttämiseen ja jakamiseen sivuiksi, ja jokaisella sivulla on enintään 10 riviä taulukossa. Siinä tapauksessa voit käyttää seuraavaa kyselyä saadaksesi useita rivejä:

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

Tämä lauseke palauttaa rivit alkaen rivistä 3 ja siirtyy enintään 7. riville. Se myös lajittelee työntekijän tulot korkeimmasta pienimpään järjestykseen. Suorita kysely ja saat seuraavan tuloksen:

javalla on seuraava
MySQL-rajoitus

3. MySQL-rajoitus WHERE-lauseella

MySQL Limit - rajoitusta voidaan käyttää myös WHERE - lausekkeen kanssa . Se tarkistaa ensin määritetyn ehdon taulukosta ja tuottaa ehtoa vastaavat rivit.

Tämä kysely valitsee viisi ensimmäistä työntekijää, joiden ikä on yli 30 vuotta. Käytimme tässä myös Order By -lausetta lajitellaksemme työntekijät tulojen mukaan laskevaan järjestykseen.

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

Kun yllä oleva lauseke on suoritettu onnistuneesti, saamme seuraavan tulosteen:

MySQL-rajoitus

4. MySQL LIMIT saadaksesi n:nnen suurimman tai pienimmän arvon

Joskus haluamme saada n:nneksi suurimman tai pienimmän arvon rivit. Siinä tapauksessa voimme käyttää seuraavaa MySQL LIMIT -lausetta odotetun tuloksen saamiseksi:

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

Tässä syntaksissa LIMIT n-1, 1 -lause palauttaa yhden rivin, joka alkaa riviltä n.

Esimerkiksi seuraava kysely palauttaa työntekijän tiedot, jolla on toiseksi suurimmat tulot:

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

Suorittamalla yllä olevan lauseen se antaa seuraavan kyselyn:

MySQL-rajoitus

On huomattava, että yllä oleva kysely toimii vain, kun taulukossasi ei ole kahta työntekijää, joilla on jonkin verran tuloja. Siinä tapauksessa käytämme DENSE_RANK () saadaksesi tarkemman tuloksen.