Ricerca…


Sintassi

  • SELEZIONA colonna_1 [, colonna_2]
    FROM table_1
    ORDINA PER order_column
    LIMIT row_count [OFFSET row_offset]
  • SELEZIONA colonna_1 [, colonna_2]
    FROM table_1
    ORDINA PER order_column
    LIMIT [row_offset,] row_count

Osservazioni

"Limite" potrebbe significare "Numero massimo di righe in una tabella".

"Offset" significa scelta dal numero di row (da non confondere con il valore della chiave primaria o qualsiasi valore dei dati del campo)

Rapporto limite e offset

Considerando la seguente tabella users :

id nome utente
1 Utente1
2 Utente2
3 user3
4 Utente4
5 User5

Per limitare il numero di righe nel set di risultati di una query SELECT , la clausola LIMIT può essere utilizzata insieme a uno o due numeri interi positivi come argomenti (incluso lo zero).

Clausola LIMIT con un argomento

Quando viene utilizzato un argomento, il set di risultati sarà limitato al numero specificato nel seguente modo:

SELECT * FROM users ORDER BY id ASC LIMIT 2
id nome utente
1 Utente1
2 Utente2

Se il valore dell'argomento è 0 , il set di risultati sarà vuoto.

Si noti inoltre che la clausola ORDER BY può essere importante per specificare le prime righe del set di risultati che verrà presentato (quando si ordina da un'altra colonna).

Clausola LIMIT con due argomenti

Quando vengono utilizzati due argomenti in una clausola LIMIT :

  • il primo argomento rappresenta la riga da cui verranno presentate le righe del set di risultati; questo numero viene spesso indicato come offset , poiché rappresenta la riga precedente alla riga iniziale del set di risultati vincolati. Ciò consente all'argomento di ricevere 0 come valore e quindi di prendere in considerazione la prima riga del set di risultati non vincolato.
  • il secondo argomento specifica il numero massimo di righe da restituire nel set di risultati (in modo simile all'esempio di un argomento).

Pertanto la query:

SELECT * FROM users ORDER BY id ASC LIMIT 2, 3

Presenta il seguente set di risultati:

id nome utente
3 user3
4 Utente4
5 User5

Si noti che quando l'argomento di offset è 0 , il set di risultati sarà equivalente a una clausola LIMIT un argomento. Ciò significa che le seguenti 2 query:

SELECT * FROM users ORDER BY id ASC LIMIT 0, 2

SELECT * FROM users ORDER BY id ASC LIMIT 2

Produce lo stesso set di risultati:

id nome utente
1 Utente1
2 Utente2

OFFSET chiave OFFSET : sintassi alternativa

Una sintassi alternativa per la clausola LIMIT con due argomenti consiste nell'utilizzo della parola chiave OFFSET dopo il primo argomento nel seguente modo:

SELECT * FROM users ORDER BY id ASC LIMIT 2 OFFSET 3

Questa query restituirebbe il seguente set di risultati:

id nome utente
3 user3
4 Utente4

Si noti che in questa sintassi alternativa gli argomenti hanno le loro posizioni commutate:

  • il primo argomento rappresenta il numero di righe da restituire nel set di risultati;

  • il secondo argomento rappresenta l'offset.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow