LIMIT et OFFSET

LIMIT et OFFSET vous permettent d'extraire une sélection de lignes générées par la requête. L'utilisation de limite et de décalage en combinaison vous permet de renvoyer une sélection de résultats. LIMIT vous permet de restreindre le nombre de résultats renvoyés à un certain nombre. Un nombre de lignes inférieur à la limite sera renvoyé (mais probablement moins, si la requête elle-même génère moins de lignes). OFFSET permet d'ignorer plusieurs lignes avant de commencer à renvoyer des lignes dans la requête. Si OFFSET et LIMIT sont définis, le nombre de lignes OFFSET est ignoré avant de commencer à compter le nombre de lignes LIMIT renvoyées.

Lors de l'utilisation de LIMIT et d'OFFSET pour essayer de renvoyer une certaine plage de valeurs, il est important d'utiliser une clause ORDER BY. Cela contraindra les lignes de résultat en une commande unique. Sinon, vous obtiendrez un sous-ensemble imprévisible de lignes de la requête.

Par exemple, l'instruction Select suivante applique un filtre de clause where, trie le résultat via ORDER BY, et renvoie les 20 premières lignes, en commençant par la ligne 50 dans les résultats :



SELECT * from <NAMED_TABLE> WHERE <SOME_CONDITION> ORDER BY <COLUMN_NAME> LIMIT 20 OFFSET 50   

		

où :

  • NAMED_TABLE est la source de données de la requête, au format d'une table nommée
  • SOME_CONDITION est une condition de clause WHERE MI SQL valide
  • COLUMN_NAME> est une colonne valide dans la table