„MySQL LIMIT“ & OFFSET su pavyzdžiais

Turinys

Kas yra LIMIT raktinis žodis?

Ribinis raktinis žodis naudojamas užklausos rezultate grąžintų eilučių skaičiui apriboti.

Jį galima naudoti kartu su komandomis „SELECT“, „UPDATE“ arba „DELETE“ LIMIT raktinio žodžio sintakse

Raktinio žodžio LIMIT sintaksė yra tokia

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

ČIA

  • „SELECT {fieldname (s) | *} FROM tableName (s)“ yra sakinys SELECT, kuriame yra laukai, kuriuos norėtume grąžinti į savo užklausą.
  • „[WHERE condition]“ yra neprivaloma, tačiau, jei ji pateikiama, ją galima naudoti norint nustatyti filtrą rezultatų rinkinyje.
  • „LIMIT N“ yra raktinis žodis, o N yra bet koks skaičius, prasidedantis nuo 0, todėl 0, nes riba negarantuoja jokių įrašų užklausoje. Įvedę skaičių, tarkim, 5, bus grąžinti penki įrašai. Jei nurodytos lentelės įrašai yra mažesni nei N, tada visi užklausos lentelės įrašai grąžinami į rezultatų rinkinį.

Pažvelkime į pavyzdį -

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

Kaip matote iš anksčiau pateikto ekrano, tik du nariai buvo grąžinti.

Dešimties (10) narių sąrašo gavimas tik iš duomenų bazės

Tarkime, kad iš „Myflix“ duomenų bazės norime gauti pirmųjų 10 registruotų narių sąrašą. Norėdami tai pasiekti, naudosime šį scenarijų.

SELECT * FROM members LIMIT 10;

Vykdydami pirmiau pateiktą scenarijų, gausime žemiau pateiktus rezultatus

 
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

Atkreipkite dėmesį, kad tik 9 nariai buvo grąžinti į mūsų užklausą, nes N LIMIT sąlygoje yra didesnis nei bendras įrašų skaičius mūsų lentelėje.

Perrašykite aukščiau pateiktą scenarijų taip

SELECT * FROM members LIMIT 9;

Pateikia tik 9 eiles mūsų užklausos rezultatų rinkinyje.

„OFF SET“ naudojimas užklausoje LIMIT

OFF SET vertė yra dažniausiai naudojamas kartu su LIMIT raktinį žodį. „OFF SET“ vertė leidžia mums nurodyti, kurią eilutę pradėti nuo duomenų gavimo

Tarkime, kad norime sulaukti riboto narių skaičiaus, pradedant nuo eilučių vidurio, tam pasiekti galime naudoti raktinį žodį LIMIT ir kompensuojamąją vertę. Žemiau pateiktas scenarijus gauna duomenis pradedant nuo antros eilės ir apriboja rezultatus iki 2.

SELECT * FROM `members` LIMIT 1, 2;

Minėto scenarijaus vykdymas „MySQL“ darbastalyje su „myflixdb“ suteikia šiuos rezultatus.

 
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

Kada turėtume naudoti LIMIT raktinį žodį?

Tarkime, kad mes kuriame programą, kuri veikia ant „myflixdb“. Mūsų sistemos dizaineris paprašė apriboti puslapyje rodomų įrašų skaičių, sakant 20 įrašų viename puslapyje, kad atsvertų lėtą įkėlimo laiką. Kaip mums įgyvendinti sistemą, kuri atitinka tokius vartotojo reikalavimus? LIMIT raktinis žodis praverčia tokiose situacijose. Galėtume apriboti užklausos rezultatus iki 20 įrašų tik viename puslapyje.

Santrauka

  • LIMIT raktinis žodis naudojamas apriboti eilučių, grąžintų iš rezultatų rinkinio, skaičių.
  • LIMIT skaičius gali būti bet koks skaičius nuo nulio (0), einantis į viršų. Kai riba nurodoma nulis (0), iš rezultatų rinkinio eilutės negrąžinamos.
  • „OFF SET“ vertė leidžia mums nurodyti, kurią eilutę pradėti nuo duomenų gavimo
  • Jį galima naudoti kartu su komandomis „SELECT“, „UPDATE“ arba „DELETE“ LIMIT raktinio žodžio sintakse

Įdomios straipsniai...