MySQL LIMITE E OFFSET con esempi
Qual è la parola chiave LIMIT?
La parola chiave limit viene utilizzata per limitare il numero di righe restituite nel risultato di una query.
Può essere utilizzato insieme alla sintassi della parola chiave LIMIT dei comandi SELECT, UPDATE OR DELETE
La sintassi per la parola chiave LIMIT è la seguente
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
QUI
- “SELEZIONA {nome/i campo/i | *} FROM tableName(s)" Europe è Istruzione SELECT contenente i campi che vorremmo restituire nella nostra query.
- “[Condizione DOVE]” è facoltativo ma, se fornito, può essere utilizzato per specificare un filtro sul set di risultati.
- “LIMITE N” è la parola chiave e N è un numero qualsiasi a partire da 0, inserendo 0 come limite non viene restituito alcun record nella query. Inserendo un numero, ad esempio 5, verranno restituiti cinque record. Se i record nella tabella specificata sono inferiori a N, nel set di risultati verranno restituiti tutti i record della tabella interrogata.
Diamo un'occhiata a un esempio -
SELECT * FROM members LIMIT 2;
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | 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 |
Come puoi vedere dallo screenshot qui sopra, sono stati restituiti solo due membri.
Ottenere un elenco di dieci (10) membri solo dal database
Supponiamo di voler ottenere un elenco dei primi 10 membri registrati dal database Myflix. Per riuscirci, useremmo il seguente script.
SELECT * FROM members LIMIT 10;
L'esecuzione dello script precedente ci fornisce i risultati mostrati di seguito
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | 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 |
Tieni presente che nella nostra query sono stati restituiti solo 9 membri poiché N nella clausola LIMIT è maggiore del numero di record totali nella nostra tabella.
Riscrivere lo script sopra come segue
SELECT * FROM members LIMIT 9;
Restituisce solo 9 righe nel set di risultati della query.
Utilizzando OFF SET nella query LIMIT
COMPENSARE value viene spesso utilizzato anche insieme alla parola chiave LIMIT. Il valore OFF SET ci consente di specificare da quale riga iniziare il recupero dei dati
Supponiamo di voler ottenere un numero limitato di membri a partire dal centro delle righe, possiamo utilizzare la parola chiave LIMIT insieme al valore offset per ottenere ciò. Lo script mostrato di seguito ottiene i dati a partire dalla seconda riga e limita i risultati a 2.
SELECT * FROM `members` LIMIT 1, 2;
Eseguendo lo script precedente in MySQL workbench su myflixdb fornisce i seguenti risultati.
membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | 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
Quando dovremmo usare la parola chiave LIMIT?
Supponiamo di sviluppare l'applicazione che gira su myflixdb. Il nostro progettista di sistema ci ha chiesto di limitare il numero di record visualizzati su una pagina a 20 record per pagina per contrastare i tempi di caricamento lenti. Come possiamo implementare il sistema che soddisfa tali requisiti degli utenti? La parola chiave LIMIT torna utile in tali situazioni. Saremmo in grado di limitare i risultati restituiti da una query a soli 20 record per pagina.
Sintesi
- La parola chiave LIMIT di viene utilizzata per limitare il numero di righe restituite da un set di risultati.
- Il numero LIMIT può essere qualsiasi numero da zero (0) verso l'alto. Quando viene specificato zero (0) come limite, non viene restituita alcuna riga dal set di risultati.
- Il valore OFF SET ci consente di specificare da quale riga iniziare il recupero dei dati
- Può essere utilizzato insieme alla sintassi della parola chiave LIMIT dei comandi SELECT, UPDATE OR DELETE