MySQL LIMIT (Italiano)

Riepilogo: in questo tutorial, imparerai come usare la clausola MySQLLIMIT per vincolare il numero di righe restituite da una query.

Introduzione alla clausola LIMITE MySQL

La clausolaLIMIT viene utilizzata nell’istruzioneSELECT per limitare il numero di righe da restituire. La clausolaLIMIT accetta uno o due argomenti. I valori di entrambi gli argomenti devono essere zero o numeri interi positivi.,

La seguente illustra il LIMIT sintassi della clausola con due argomenti:

Code language: SQL (Structured Query Language) (sql)

In questa sintassi:

  • offset specifica l’offset della prima riga di ritorno. Iloffset della prima riga è 0, non 1.
  • row_count specifica il numero massimo di righe da restituire.,

La figura seguente illustra il LIMIT clausola:

Quando si utilizza il tag LIMIT clausola di un argomento, MySQL utilizzare questo argomento per determinare il numero massimo di righe da restituire a partire dalla prima riga del set di risultati.,

Pertanto, queste due clausole sono equivalenti:

Code language: SQL (Structured Query Language) (sql)

E

Oltre alla sintassi precedente, MySQL fornisce la seguente clausola alternativaLIMIT per la compatibilità con PostgreSQL.

Code language: SQL (Structured Query Language) (sql)

Clausole LIMIT e ORDER BY

L’istruzione SELECTsenza una clausola ORDER BY restituisce le righe in un ordine non specificato. Significa che le righe possono essere in qualsiasi ordine., Quando si applica la clausolaLIMIT a questo set di risultati non ordinati, non si saprà quali righe restituirà la query.

Ad esempio, potresti voler ottenere dalla quinta alla decima riga, ma dalla quinta alla decima in quale ordine? L’ordine delle righe è sconosciuto a meno che non si specifichi la clausola ORDER BY.

Pertanto, è buona norma utilizzare sempre la clausolaLIMIT con la clausolaORDER BY per vincolare le righe dei risultati in ordine univoco.,

Code language: SQL (Structured Query Language) (sql)

La figura seguente illustra l’ordine di valutazione dei tag LIMIT clausola nel SELECT dichiarazione:

MySQL LIMITE esempi

utilizzeremo customers tabella dal database di esempio per la dimostrazione.,

1) l’Utilizzo di MySQL LIMITE di ottenere il più alto o il più basso righe

Questa istruzione utilizza il LIMIT clausola di ottenere i primi cinque clienti che hanno il più alto di credito:

Code language: SQL (Structured Query Language) (sql)

Provare

In questo esempio:

  • Primo, ORDER BY clausola ordina i clienti da crediti in alto al basso.,
  • Quindi, la clausolaLIMIT restituisce le prime 5 righe.

allo stesso modo, in questo esempio si utilizza il tag LIMIT clausola di trovare 5 clienti che hanno il più basso crediti:

Code language: SQL (Structured Query Language) (sql)

Provare

In questo esempio:

  • Primo, ORDER BY clausola ordina i clienti da crediti in basso al più alto.
  • Quindi, la clausolaLIMIT restituisce le prime 5 righe.,

Poiché ci sono più di 5 clienti che hanno crediti pari a zero, il risultato della query di cui sopra può portare a un risultato incoerente.,

Per risolvere questo problema, è necessario aggiungere più di una colonna per il ORDER BY clausola per limitare la riga in ordine:

Code language: SQL (Structured Query Language) (sql)

Provare

2) l’Utilizzo di MySQL LIMITE per la paginazione

Quando si visualizzano i dati su applicazioni, spesso si desidera dividere le righe in pagine, in cui ogni pagina contiene un certo numero di righe, come 5, 10, o 20.

Per calcolare il numero di pagine, ottieni le righe totali divise per il numero di righe per pagina., Per il recupero di righe di una pagina specifica, è possibile utilizzare la clausolaLIMIT.

Questa query utilizza la funzione di aggregazione COUNT(*) per ottenere le righe totali dalla tabella customers:

Code language: SQL (Structured Query Language) (sql)
Code language: JavaScript (javascript)

Supponiamo che ogni pagina abbia 10 righe, per visualizza 122 clienti hai 13 pagine. L’ultima pagina 13 contiene solo due righe., LIMIT clausola per ottenere righe di pagina 1, che contiene i primi 10 clienti ordinati per nome del cliente:

Code language: SQL (Structured Query Language) (sql)

Provare

la query utilizza il LIMIT clausola per ottenere le righe della seconda pagina che includono la riga 11 – 20:

Code language: SQL (Structured Query Language) (sql)

Provare

In questo esempio, la clausola LIMIT 10, 10 restituisce 10 righe per la riga 11 – 20.,

3) l’Utilizzo di MySQL LIMITE l’ennesimo più basso o più alto valore

Per ottenere l’ennesimo più basso o più alto valore, è possibile utilizzare il seguente LIMIT clausola:

Code language: SQL (Structured Query Language) (sql)

La clausola LIMIT n-1, 1 torna 1 riga di partenza presso la riga n.

Ad esempio, quanto segue trova il cliente che ha il secondo credito più alto:

Code language: SQL (Structured Query Language) (sql)

Provalo

Ricontrolliamo il risultato., Questa query restituisce tutti i clienti ordinati per crediti dall’alto verso il basso:

Code language: SQL (Structured Query Language) (sql)

Provare

Come si può vedere chiaramente dall’uscita, il risultato è stato corretto come previsto.

Si noti che questa tecnica funziona quando non ci sono due clienti che hanno gli stessi limiti di credito. Per ottenere un risultato più accurato, è necessario utilizzare la funzione finestraDENSE_RANK().,

In questo tutorial, hai imparato come usare la clausola MySQL LIMITper vincolare il numero di righe restituite dall’istruzione SELECT.

  • Questo tutorial è stato utile?

Author: admin

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *