rezumat: în acest tutorial, veți învăța cum să utilizați MySQL LIMIT
clauza pentru a constrânge numărul de rânduri returnate de o interogare.
Introducere în MySQL LIMITA clauza
LIMIT
clauză este utilizată în SELECT
declarație pentru a limita numărul de rânduri pentru a reveni. Clauza LIMIT
acceptă unul sau două argumente. Valorile ambelor argumente trebuie să fie numere întregi zero sau pozitive.,
următoarele ilustrează LIMIT
clauza de sintaxă cu două argumente:
Code language: SQL (Structured Query Language) (sql)
În această sintaxă:
-
offset
specifică compensate, în primul rând, să se întoarcă.offset
din primul rând este 0, Nu 1. -
row_count
specifică numărul maxim de rânduri de returnat.,
imaginea De mai jos ilustrează LIMIT
clauza:
atunci Când utilizați LIMIT
clauza cu un singur argument, MySQL va folosi acest argument pentru a determina numărul maxim de rânduri pentru a reveni la primul rând al setului de rezultate.,
prin Urmare, aceste două propoziții sunt echivalente:
Code language: SQL (Structured Query Language) (sql)
Și
În plus față de cele de mai sus sintaxa, MySQL oferă următoarele alternative LIMIT
clauza de compatibilitate cu PostgreSQL.
Code language: SQL (Structured Query Language) (sql)
LIMITĂ și ORDINEA DE clauzele
SELECT
declarație fără un ORDER BY
clauza de returnare rânduri într-o nespecificat ordine. Aceasta înseamnă că rândurile pot fi în orice ordine., Când aplicați clauza LIMIT
la acest set de rezultate neordonat, nu veți ști ce rânduri va reveni interogarea.de exemplu, poate doriți să obțineți al cincilea până la al zecelea rând, dar al cincilea până la al zecelea în ce ordine? Ordinea rândurilor nu este cunoscută decât dacă specificați clauza ORDER BY
.
prin Urmare, este o bună practică de a utiliza întotdeauna LIMIT
clauza cu ORDER BY
clauza de constrângere rezultatul rânduri în ordine unic.,
Code language: SQL (Structured Query Language) (sql)
imaginea De mai jos ilustrează evaluare ordinea de LIMIT
clauză în SELECT
declarație:
MySQL LIMITA exemple
Vom folosi customers
tabel din baza de date eșantion pentru demonstrație.,
1) Folosind MySQL LIMITĂ pentru a obține cel mai mare sau cel mai mic rânduri
Această declarație foloseste LIMIT
clauză pentru a obține primele cinci clienți care au cel mai mare credit:
Code language: SQL (Structured Query Language) (sql)
Încercați să-L Afară
În acest exemplu:
- în Primul rând,
ORDER BY
clauza felul clienții cu credite în mare la mic., - apoi, clauza
LIMIT
returnează primele 5 rânduri.
de asemenea, acest exemplu utilizează LIMIT
clauza de a găsi 5 clienți care au cel mai mic credite:
Code language: SQL (Structured Query Language) (sql)
Încercați să-L Afară
În acest exemplu:
- în Primul rând,
ORDER BY
clauza felul clienții cu credite de la mic la mare. - apoi, clauza
LIMIT
returnează primele 5 rânduri.,deoarece există mai mult de 5 clienți care au credite zero, rezultatul interogării de mai sus poate duce la un rezultat inconsistent.,Pentru a rezolva această problemă, aveți nevoie pentru a adăuga mai multe coloane la
ORDER BY
clauza de a constrânge pe rând în ordine unic:Code language: SQL (Structured Query Language) (sql)Încercați să-L Afară
2) Folosind MySQL LIMITĂ pentru paginare
Când aveți de a afișa datele de pe aplicații, de multe ori doriți să împărțiți rânduri în pagini, în cazul în care fiecare pagină conține un anumit număr de rânduri ca 5, 10, sau 20.pentru a calcula numărul de pagini, obțineți rândurile totale împărțite la numărul de rânduri pe pagină., Pentru preluarea rândurilor unei anumite pagini, puteți utiliza clauza
LIMIT
.Această interogare folosește
COUNT(*)
funcția agregată pentru a obține totalul rânduri decustomers
tabel:Code language: SQL (Structured Query Language) (sql)Code language: JavaScript (javascript)să Presupunem că fiecare pagină are 10 rânduri, pentru a afișa 122 clienți ai 13 pagini. Ultima pagină 13 conține doar două rânduri.,
LIMIT
clauză pentru a obține rânduri din pagina 1, care conține primele 10 clienți sortate în funcție de numele clientului:Code language: SQL (Structured Query Language) (sql)Încercați să-L Afară
Această interogare folosește
LIMIT
clauză pentru a obține rândurile de pagina a doua, care includ randul 11 – 20:Code language: SQL (Structured Query Language) (sql)Încercați să-L Afară
În acest exemplu, clauza
LIMIT 10, 10
returnează 10 rânduri pentru randul 11 – 20.,3) Folosind MySQL LIMITA pentru a obține cel mai inalt mai mare sau mai mică valoare
Pentru a obține cel mai inalt mai mare sau mai mică valoare, utilizați următoarele
LIMIT
clauza:Code language: SQL (Structured Query Language) (sql)clauza
LIMIT n-1, 1
livrare1
rând începând de la rândn
.De exemplu, următoarele găsește client care are al doilea cel mai mare credit:
Code language: SQL (Structured Query Language) (sql)Încercați să-L Afară
Să verificați rezultatul., Această interogare returnează toți clienții sortate de credite de la mare la mic:
Code language: SQL (Structured Query Language) (sql)Încercați să-L Afară
după Cum puteți vedea în mod clar de la ieșire, rezultatul a fost corect cum era de așteptat.rețineți că această tehnică funcționează atunci când nu există doi clienți care au aceleași limite de credit. Pentru a obține un rezultat mai precis, ar trebui să utilizați funcția ferestrei
DENSE_RANK()
.,În acest tutorial, ai învățat cum să utilizați MySQL
LIMIT
clauze pentru a limita numărul de rânduri returnate de cătreSELECT
declarație.- a fost acest tutorial util?
- YesNo