Temps de lecture approximative : 5 minutes
LIMIT
et OFFSET
En SQL, la commande LIMIT
permet de spécifier le nombre maximum de résultats que l’on souhaite obtenir, tandis que la commande OFFSET
permet d'effectuer un décalage sur l'ensemble des résultats. Un cas d'utilisation courant consiste à utiliser ces commandes dans le cadre du développement d'une pagination.
Démarrons avec l’utilisation la plus basique de la commande LIMIT
qui s’effectue de la manière suivante :
SELECT une_colonne FROM une_table LIMIT une_limite;
Cette requête SQL va donc sélectionner grâce à la commande SELECT
la colonne une_colonne provenant de la table nommée une_table et ne retourner que les une_limite premiers résultats.
Afin de mettre en évidence l'utilisation de la commande SELECT
, et de comprendre facilement comment cette dernière fonctionne, nous utiliserons la table clients qui contient les colonnes et données suivantes pour nos différents exemples. Cette dernière simule la table qui contient les clients d'une entreprise quelconque.
id | prenom | nom | ville | |
---|---|---|---|---|
1 | Marine | Leroy | mleroy@example.com | Paris |
2 | Jean | René | jrene@example.com | Lyon |
3 | Ted | Bundy | tbundy@example.com | Lyon |
4 | Paul | Bismuth | pbismuth@example.com | Lyon |
5 | Caroline | Rodriguez | crodriguez@example.com | Paris |
Reprenons notre première requête SQL avec la commande LIMIT
et complétons correctement cette dernière avec la table clients. Nous souhaitons sélectionner uniquement les 2 premiers résultats. Pour effectuer cette opération, la requête est la suivante :
SELECT * FROM clients LIMIT 2;
Résultat
id | prenom | nom | ville | |
---|---|---|---|---|
1 | Marine | Leroy | mleroy@example.com | Paris |
2 | Jean | René | jrene@example.com | Lyon |
En SQL, la commande OFFSET
permet de ne pas retourner une partie des résultats de la reqûete. Cette commande s'utilise uniquement en complément de la commande LIMIT
. Par exemple, nous souhaitons sélectionner uniquement les 2 premiers résultats sans le tout premier. Pour effectuer cette opération, la requête est la suivante :
SELECT * FROM clients LIMIT 2 OFFSET 1;
Résultat
id | prenom | nom | ville | |
---|---|---|---|---|
2 | Jean | René | jrene@example.com | Lyon |
3 | Ted | Bundy | tbundy@example.com | Lyon |