Sintaksa LIMIT:
>> ODABERI izraz IZ tablice LIMIT Pomak, redovi;Evo objašnjenja upita LIMIT:
- Izraz: Može biti naziv stupca ili sterilno '*'.
- Pomak: Pomak određuje pomak koji će se vratiti iz prvog retka. Ako koristite 0 kao pomak, vratit će se redak 1 i obrnuto.
- Redovi: Ukupan broj redaka koji se vraćaju.
Otvorite ljusku naredbenog retka MySQL-a i upišite lozinku. Pritisnite Enter za nastavak.
Pretpostavimo da u svojoj MySQL bazi podataka imate tablicu koja se naziva 'učitelj', kao što je prikazano dolje. Ako želite dohvatiti sve zapise ili retke ove tablice bez ikakvog definiranja ograničenja, učinit ćete to pomoću jednostavnog upita SELECT na sljedeći način:
>> ODABERI * IZ podataka.učitelj, nastavnik, profesor;
Primjer 01: OGRANIČENJE samo s brojem reda:
Ako korisnik želi dohvatiti neke zapise dok ograničava broj redaka, to može učiniti pomoću jednostavne klauzule LIMIT u naredbi SELECT. Isprobajmo primjer dok koristimo gornju tablicu. Pretpostavimo da želite prikazati samo 6 redaka iz gornje tablice dok prikazuju retke slijedeći silazni redoslijed stupca TeachName. Isprobajte sljedeći upit:
>> ODABERI * IZ podataka.učitelj REDOSLIJED PO NASTAVNIKU DESC LIMIT 6;
Primjer 02: OGRANIČENJE S OFFSET-om i brojem reda:
Pokušajmo u istoj tablici definirati Offset uz broj retka. Pretpostavimo da iz tablice morate dohvatiti samo 6 zapisa, dok vraćeni zapis mora počinjati od 6th red tablice. Isprobajte sljedeći upit:
>> ODABERI * IZ podataka.učitelj DESC LIMIT 6, 6;
Primjer 03: OGRANIČENJE s klauzulom WHERE:
Pretpostavimo da se tablica "isto" nalazi u MySQL bazi podataka. Dohvatite cijelu tablicu dok je sortirate u rastućem redoslijedu stupca 'id' pomoću naredbe SELECT zajedno s ORDER BY na sljedeći način:
>> ODABERI * IZ podataka.isti NARUČI po id ASC;
Pokušavajući s navedenim upitom, imat ćemo nasumična tri zapisa starosti između 12 i 34 godine s bilo kojeg slučajnog mjesta u tablici. Dok smo u gornjoj tablici, imamo više od 6 zapisa dobne skupine između 12 i 34 godine.
>> ODABERI * IZ podataka.isti WHERE dob> '12' I dob < '34' LIMIT 3;
Kada u upitu koristimo klauzulu ORDER BY bez navođenja vrste narudžbe, ona će automatski dohvatiti zapis u rastućem redoslijedu kao dolje.
>> ODABERI * IZ podataka.isti WHERE dob> '12' I dob < '34' ORDER BY age LIMIT 3;
Da biste dohvatili ograničeni zapis drugim redoslijedom sortiranja, morate definirati redoslijed sortiranja. Kako dohvaćamo podatke od 8 redova koristeći silazni redoslijed stupca 'dob'.
>> ODABERI * IZ podataka.isti WHERE dob> '12' I dob < '34' ORDER BY age DESC LIMIT 8;
Dohvatimo samo 2 reda gdje je kućni ljubimac "pas". Po izvršenju imamo samo 1 rezultat jer je znak '=' tražio točan uzorak, a imamo samo 1 zapis o njegovom uzorku.
>> ODABERI * IZ podataka.isto GDJE kućni ljubimac = 'pas' NARUČI PO OGRANIČENJU id 2;
Primjer 04: OGRANIČENJE s klauzulom LIKE i zamjenski znakovi:
Tražili smo obrazac 'pas' i dobili smo samo 1 rezultat. Iako u tablici imamo više od 1 zapisa o "psu". Sada ćemo te zapise dohvatiti pomoću klauzule LIKE zajedno s klauzulom LIMIT. Da biste prikazali jedinih 5 zapisa u tablici u kojima ime ljubimca počinje od 'd', isprobajte upit u nastavku. Kako imamo samo 2 zapisa za obrazac 'pas', zato imamo samo 2.
>> ODABERI * IZ podataka.isto GDJE ljubimac KAO 'd%' NARUČI PO OGRANIČENJU id 5;
Dohvatimo samo 10 zapisa iz tablice, gdje kućni ljubimac mora imati 'r' na bilo kojem srednjem mjestu njegovog imena. Kako u kućnim ljubimcima imamo konja, papagaja i zeca koji u svom imenu imaju 'r', zato smo iz ovog upita dobili samo 4 zapisa.
>> ODABERI * IZ podataka.isto GDJE ljubimac KAO '% r%' NARUČI PO ID OGRANIČENJU 10;
Da biste dobili 6 zapisa tablice, gdje ime ljubimca na kraju mora imati 't', pokrenite navedeni upit u ljusci SQL naredbenog retka. Ovdje imamo 4 zapisa iz ovog upita.
>> ODABERI * IZ podataka.isto GDJE ljubimac KAO '% t' NARUČI PO ID OGRANIČENJU 6;
Da biste dobili 8 zapisa tablice, gdje posao osobe mora imati 'er' na kraju, pokrenite donji upit u ljusci. Ovdje imamo 6 zapisa iz ovog upita.
>> ODABERI * IZ podataka.isto GDJE posao KAO '% er' REDOSLIJED PO GODINI ASC GRANICA 8;
Promijenimo klauzulu WHERE zajedno s izrazom LIKE u upitu SELECT. Pretpostavimo da želite dohvatiti zapis od 6 redaka iz tablice 'isti'. Pokušali ste s uvjetom da dohvatite jedine zapise u kojima "fname" mora imati "a" na zadnjem mjestu svoje vrijednosti, a "lname" mora imati "a" na bilo kojem srednjem mjestu njegove vrijednosti. S druge strane, podaci se moraju sortirati slijedeći silazni redoslijed stupca 'starost'. Da biste dobili ovih 6 zapisa, pokrenite dolje navedeni upit u ljusci SQL naredbenog retka. Imamo 5 zapisa za ovo stanje, a rezultat je prikazan u nastavku.
>> ODABERI * IZ podataka.isto TAKO GDJE fname KAO '% a' I lname KAO '% a%' REDOSLIJED PO DOBI DESC LIMIT 5;
Zaključak:
Nadam se da ste u potpunosti spremni za temu LIMT nakon što ste isprobali gotovo sve primjere klauzule LIMIT zajedno sa članovima,.g., Pomak i broj retka.