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 email 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 email 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 email 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