logo

Limite MySQL

Viene utilizzata la query MySQL Limit limitare il numero di righe restituite dal set di risultati, anziché recupero l'intero set nel database MySQL. La clausola Limit funziona con l'istruzione SELECT per restituire solo il numero di righe specificato. Questa query accetta solo uno o due argomenti e i relativi valori devono essere zero o qualsiasi numero intero positivo.

È indispensabile in questi casi quando la tabella contiene migliaia di righe, oppure si vogliono restituire solo i dati recentemente inseriti. In altre parole, se non sei interessato a ottenere tutte le righe restituite dalla query, utilizza la clausola MySQL Limit con l'istruzione SELECT. Migliora le prestazioni della query e smette persino di mandare in crash il sistema quando la tabella contiene un numero elevato di dati.

Per ottenere solo le righe specificate dalla tabella, MySQL utilizza il file LIMITE clausola, mentre SQL utilizza la clausola SUPERIORE clausola e Oracle utilizza la clausola NUMERO DI RIGA clausola con il SELEZIONARE dichiarazione.

Sintassi

Di seguito è riportata la sintassi per l'utilizzo della query Limit in MySQL :

 SELECT column_list FROM table_name LIMIT offset, count; 

Nella sintassi sopra, possiamo vedere:

Elenco_colonne: È il nome della colonna che vuoi restituire.

Nome_tabella: È il nome della tabella che contiene il nome della colonna.

Compensare: Specifica il numero di riga da cui si vuole tornare. L'offset della riga inizia da 0, non da 1.

Contare: Specifica il numero massimo di righe che desideri restituire.

La seguente rappresentazione visiva lo spiega più chiaramente:

Limite MySQL

NOTA: Se si specifica un solo argomento con la clausola Limit, MySQL lo presuppone per determinare il numero massimo di righe per restituire l'output dal set di risultati. In tal caso, gli argomenti della clausola Limit, l'offset e il conteggio sono equivalenti.

Clausola LIMIT con clausola ORDER BY

L'utente deve utilizzare la clausola Limit con la clausola Order By . Senza utilizzare la clausola Order By, otterrai il risultato in an ordine non specificato . In tal caso, è difficile sapere da quali righe la query restituisce il risultato. Quindi è una buona abitudine da usare Raggruppa per clausola con una clausola Limit per ottenere le righe in un ordine specifico.

È possibile utilizzare la seguente sintassi per ottenere il risultato in un ordine univoco:

 SELECT column_list FROM table_name GROUP BY order_expression LIMIT offset, count; 

Esempi di limiti MySQL

Creiamo una tabella di esempio nel database che contiene i seguenti dati e comprendiamo come funziona la clausola Limit in MySQL utilizzando vari esempi:

Tabella: dipendenti

Limite MySQL

1. Limite MySQL per restituire le righe più alte o più basse

La seguente dichiarazione veniva utilizzata per ottenere i primi cinque dipendenti più giovani:

 SELECT * FROM employees ORDER BY emp_age LIMIT 5; 

Questa istruzione ordina innanzitutto l'età del dipendente utilizzando la clausola Group By, quindi la clausola Limit restituisce i primi cinque risultati. Dopo aver eseguito i passaggi precedenti, otterremo il seguente output:

Limite MySQL

2. Limite MySQL per ottenere un intervallo di righe utilizzando l'offset

A volte vuoi ottenere un risultato compreso tra gli intervalli di valori. Ad esempio, hai un numero elevato di righe per visualizzare i dati sulle applicazioni, quindi dividili in pagine e ciascuna pagina contiene un massimo di 10 righe in una tabella. In tal caso, puoi utilizzare la seguente query per ottenere un intervallo di righe:

 SELECT emp_id, emp_name, income FROM employees ORDER BY income DESC LIMIT 3,7; 

Questa istruzione restituisce le righe a partire dalla riga numero 3 e arriva fino a un massimo di 7 righe. Ordina inoltre il reddito del dipendente dall'ordine più alto a quello più basso. Esegui la query e otterrai il seguente output:

mvc java
Limite MySQL

3. Limite MySQL con clausola WHERE

MySQL Limit può essere utilizzato anche con la clausola WHERE. Innanzitutto controlla la condizione specificata nella tabella e produce le righe che soddisfano la condizione.

Questa query seleziona i primi cinque dipendenti la cui età è superiore a 30 anni. In questo caso abbiamo utilizzato anche la clausola Order By per ordinare i dipendenti in ordine decrescente utilizzando il loro reddito.

 SELECT emp_name, emp_age, income FROM employees WHERE emp_age>30 ORDER BY income DESC LIMIT 5; 

Dopo aver eseguito con successo l'istruzione di cui sopra, otterremo il seguente output:

Limite MySQL

4. MySQL LIMIT per ottenere l'ennesimo valore più alto o più basso

A volte vogliamo ottenere le righe con l'ennesimo valore più alto o più basso. In tal caso, possiamo utilizzare la seguente clausola MySQL LIMIT per ottenere il risultato atteso:

 SELECT column_list FROM table_name ORDER BY expression LIMIT n-1, 1; 

In questa sintassi, la clausola LIMIT n-1, 1 restituisce 1 riga che inizia dalla riga n.

Ad esempio, la query seguente restituisce le informazioni sul dipendente che ha il secondo reddito più alto:

 SELECT emp_name, city, income FROM employees ORDER BY income LIMIT 1, 1; 

Eseguendo l'istruzione precedente, verrà fornita la seguente query:

Limite MySQL

È da notare che la query di cui sopra funziona solo quando la tabella non contiene due dipendenti che percepiscono un reddito. In tal caso, utilizzeremo DENSO_RANGO () per ottenere un risultato più accurato.