MySQL LIMIT & OFFSET koos näidetega

Anonim

Mis on märksõna LIMIT?

Piir märksõna kasutatakse päringutulemites tagastatud ridade arvu piiramiseks.

Seda saab kasutada koos käsuga SELECT, UPDATE OR DELETE märksõna süntaksiga LIMIT

Märksõna LIMIT süntaks on järgmine

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

SIIN

  • "SELECT {väljanimi (s) | *} FROM tableName (s)" on käsk SELECT, mis sisaldab välju, mille soovime oma päringus tagastada.
  • "[WHERE tingimus]" on valikuline, kuid kui see on komplektis, saab seda kasutada tulemuste komplekti filtri määramiseks.
  • "LIMIT N" on märksõna ja N on suvaline arv alates 0, pannes 0, kuna limiit ei tagasta päringus ühtegi kirjet. Numbri öeldes öeldes 5 tagastatakse viis kirjet. Kui määratud tabeli kirjed on väiksemad kui N, tagastatakse kõik päringu tabeli kirjed tulemuste komplektis.

Vaatame ühte näidet -

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 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL

Nagu ülaltoodud ekraanipildilt näete, on tagastatud ainult kaks liiget.

Kümnest (10) liikmest koosneva nimekirja saamine ainult andmebaasist

Oletame, et tahame Myflixi andmebaasist saada esimese 10 registreeritud liikme nimekirja. Selle saavutamiseks kasutaksime järgmist skripti.

SELECT * FROM members LIMIT 10;

Ülaltoodud skripti käivitamine annab meile allpool näidatud tulemused

 
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 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it. 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

Pange tähele, et meie päringus on tagastatud ainult 9 liiget, kuna klauslis LIMIT on N suurem kui meie tabelis olevate kirjete koguarv.

Ülaloleva skripti uuesti kirjutamine järgmiselt

SELECT * FROM members LIMIT 9;

Tagastab meie päringu tulemuste komplektis ainult 9 rida.

OFF SET-i kasutamine päringus LIMIT

OFF SET väärtus on ka kõige sagedamini kasutatakse koos LIMIT märksõna. Väärtus OFF SET võimaldab meil määrata, millist rida andmete hankimisel alustada

Oletame, et soovime saada piiratud arvu liikmeid alates ridade keskelt, selle saavutamiseks võime kasutada märksõna LIMIT koos nihke väärtusega. Allpool toodud skript saab andmed alates teisest reast ja piirab tulemusi 2-ga.

SELECT * FROM `members` LIMIT 1, 2;

Ülaltoodud skripti käivitamine MySQL-i töölaual myflixdb-ga annab järgmised tulemused.

 
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 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it. NULL
Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned

Millal peaksime kasutama märksõna LIMIT?

Oletame, et arendame rakendust, mis töötab myflixdb peal. Meie süsteemidisainer on palunud meil aeglase laadimisaja ületamiseks piirata lehel kuvatavate kirjete arvu, öeldes 20 kirjet lehe kohta. Kuidas jätkame sellistele kasutajate nõuetele vastava süsteemi juurutamist? Märksõna LIMIT tuleb sellistes olukordades kasuks. Saaksime piirata päringult tagastatud tulemuste arvu 20 kirjega ainult lehe kohta.

Kokkuvõte

  • Märksõna LIMIT kasutatakse tulemuste komplektist tagastatud ridade arvu piiramiseks.
  • LIMIT-arv võib olla mis tahes arv nullist (0) ülespoole suundudes. Kui piiriks on määratud null (0), ei tagastata tulemite komplektist ühtegi rida.
  • Väärtus OFF SET võimaldab meil määrata, millist rida andmete hankimisel alustada
  • Seda saab kasutada koos käsuga SELECT, UPDATE OR DELETE märksõna süntaksiga LIMIT