MySQL LIMIT & OFFSET esimerkein

Mikä on avainsana LIMIT?

Rajoitusavainsanaa käytetään rajoittamaan kyselytuloksessa palautettavien rivien määrää.

Sitä voidaan käyttää yhdessä SELECT-, UPDATE tai DELETE-komentojen LIMIT avainsanasyntaksin kanssa.

LIMIT-avainsanan syntaksi on seuraava

SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT  N;

TÄÄLTÄ

  • "VALITSE {kentännimi(t) | *} FROM tableName(s)” on SELECT-lause jotka sisältävät kentät, jotka haluamme palauttaa kyselyssämme.
  • "[WHERE ehto]" on valinnainen, mutta kun se toimitetaan, sitä voidaan käyttää suodattimen määrittämiseen tulosjoukolle.
  • "RAJA N" on avainsana ja N on mikä tahansa luku, joka alkaa 0:sta ja asetetaan 0, koska raja ei palauta tietueita kyselyyn. Jos laitat numeron 5, saat viisi tietuetta. Jos määritetyn taulukon tietueet ovat pienempiä kuin N, kaikki kyselyn taulukon tietueet palautetaan tulosjoukkoon.

Katsotaanpa esimerkkiä -

SELECT *  FROM members LIMIT 2;
membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
1 Janet Jones Female 21-07-1980 NULL First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL

Kuten yllä olevasta kuvakaappauksesta näet, vain kaksi jäsentä on palautettu.

Kymmenen (10) jäsenen listan saaminen vain tietokannasta

Oletetaan, että haluamme saada listan 10 ensimmäisestä rekisteröityneestä jäsenestä Myflix-tietokannasta. Käytämme seuraavaa skriptiä saavuttaaksemme sen.

SELECT *  FROM members LIMIT 10;

Yllä olevan skriptin suorittaminen antaa meille alla näkyvät tulokset

membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
1 Janet Jones Female 21-07-1980 NULL First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 rm@tstreet.com NULL
4 Gloria Williams Female 14-02-1984 NULL 2nd Street 23 NULL NULL NULL NULL
5 Leonard Hofstadter Male NULL NULL Woodcrest NULL 845738767 NULL NULL
6 Sheldon Cooper Male NULL NULL Woodcrest NULL 976736763 NULL NULL
7 Rajesh Koothrappali Male NULL NULL Woodcrest NULL 938867763 NULL NULL
8 Leslie Winkle Male 14-02-1984 NULL Woodcrest NULL 987636553 NULL NULL
9 Howard Wolowitz Male 24-08-1981 NULL SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me NULL

Huomaa, että kyselyssämme on palautettu vain 9 jäsentä, koska LIMIT-lauseen N on suurempi kuin taulukossamme olevien tietueiden kokonaismäärä.

Kirjoita yllä oleva skripti uudelleen seuraavasti

SELECT *  FROM members LIMIT 9;

Palauttaa vain 9 riviä kyselyn tulosjoukossamme.

OFF SET -asetuksen käyttäminen LIMIT-kyselyssä

- OFF SET arvoa käytetään myös useimmiten yhdessä avainsanan LIMIT kanssa. OFF SET -arvon avulla voimme määrittää, mikä rivi aloittaa tietojen noutamisesta

Oletetaan, että haluamme saada rajoitetun määrän jäseniä alkaen rivien keskeltä, voimme käyttää avainsanaa LIMIT yhdessä offset-arvon kanssa saavuttaaksemme sen. Alla näkyvä komentosarja saa tiedot toisesta rivistä alkaen ja rajoittaa tulokset kahteen.

SELECT * FROM `members` LIMIT 1, 2;

Suoritetaan yllä oleva komentosarja MySQL työpenkki myflixdb:tä vastaan ​​antaa seuraavat tulokset.

membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 rm@tstreet.com NULL

Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned

Milloin meidän tulisi käyttää avainsanaa LIMIT?

Oletetaan, että kehitämme sovellusta, joka toimii myflixdb:n päällä. Järjestelmäsuunnittelijamme on pyytänyt meitä rajoittamaan sivulla näytettävien tietueiden määrää esimerkiksi 20 tietueeseen sivulla hitaita latausaikoja vastaan. Miten otamme käyttöön järjestelmän, joka täyttää tällaiset käyttäjien vaatimukset? LIMIT-avainsana on hyödyllinen tällaisissa tilanteissa. Pystyisimme rajoittamaan kyselystä palautetut tulokset vain 20 tietueeseen sivua kohden.

Yhteenveto

  • LIMIT-avainsanaa käytetään rajoittamaan tulosjoukosta palautettujen rivien määrää.
  • LIMIT-luku voi olla mikä tahansa luku nollasta (0) ylöspäin. Kun rajaksi on määritetty nolla (0), tulosjoukosta ei palauteta rivejä.
  • OFF SET -arvon avulla voimme määrittää, mikä rivi aloittaa tietojen noutamisesta
  • Sitä voidaan käyttää yhdessä SELECT-, UPDATE tai DELETE-komentojen LIMIT avainsanasyntaksin kanssa.