Temps de lecture approximative : 5 minutes

Commandes SQL 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 :

SQL
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.

Table : clients
id prenom nom email 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 :

SQL
SELECT * FROM clients LIMIT 2;
Résultat
id prenom nom email 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 :

SQL
SELECT * FROM clients LIMIT 2 OFFSET 1;
Résultat
id prenom nom email ville
2 Jean René jrene@example.com Lyon
3 Ted Bundy tbundy@example.com Lyon