MySQL
Limite et décalage
Recherche…
Syntaxe
- SELECT column_1 [, column_2]
FROM table_1
ORDER BY order_column
LIMIT row_count [OFFSET row_offset] - SELECT column_1 [, column_2]
FROM table_1
ORDER BY order_column
LIMIT [row_offset,] row_count
Remarques
"Limite" pourrait signifier "Nombre maximum de lignes dans une table".
"Décalage" signifie le choix du numéro de row
(à ne pas confondre avec la valeur de la clé primaire ou une valeur de champ quelconque)
Relation Limite et Offset
Considérant la table d' users
suivante:
id | Nom d'utilisateur |
---|---|
1 | Utilisateur1 |
2 | Utilisateur2 |
3 | Utilisateur3 |
4 | Utilisateur4 |
5 | Utilisateur5 |
Afin de contraindre le nombre de lignes dans le jeu de résultats d'une requête SELECT
, la clause LIMIT
peut être utilisée avec un ou deux entiers positifs comme arguments (zéro inclus).
Clause LIMIT
avec un argument
Lorsqu'un argument est utilisé, le jeu de résultats sera uniquement limité au nombre spécifié de la manière suivante:
SELECT * FROM users ORDER BY id ASC LIMIT 2
id | Nom d'utilisateur |
---|---|
1 | Utilisateur1 |
2 | Utilisateur2 |
Si la valeur de l'argument est 0
, le jeu de résultats sera vide.
Notez également que la clause ORDER BY
peut être importante pour spécifier les premières lignes du jeu de résultats qui sera présenté (lors du classement par une autre colonne).
Clause LIMIT
avec deux arguments
Lorsque deux arguments sont utilisés dans une clause LIMIT
:
- le premier argument représente la ligne à partir de laquelle les lignes du jeu de résultats seront présentées - ce nombre est souvent mentionné comme un décalage , car il représente la ligne précédant la ligne initiale du jeu de résultats contraint. Cela permet à l'argument de recevoir
0
comme valeur et de prendre ainsi en compte la première ligne du jeu de résultats non contraint. - le second argument spécifie le nombre maximal de lignes à retourner dans le jeu de résultats (comme dans l'exemple d'un argument).
Par conséquent, la requête:
SELECT * FROM users ORDER BY id ASC LIMIT 2, 3
Présente le jeu de résultats suivant:
id | Nom d'utilisateur |
---|---|
3 | Utilisateur3 |
4 | Utilisateur4 |
5 | Utilisateur5 |
Notez que lorsque l'argument offset est 0
, le jeu de résultats sera équivalent à une clause LIMIT
à un argument. Cela signifie que les 2 requêtes suivantes:
SELECT * FROM users ORDER BY id ASC LIMIT 0, 2
SELECT * FROM users ORDER BY id ASC LIMIT 2
Produire le même jeu de résultats:
id | Nom d'utilisateur |
---|---|
1 | Utilisateur1 |
2 | Utilisateur2 |
Mot clé OFFSET
: syntaxe alternative
Une syntaxe alternative pour la clause LIMIT
avec deux arguments consiste à utiliser le mot clé OFFSET
après le premier argument de la manière suivante:
SELECT * FROM users ORDER BY id ASC LIMIT 2 OFFSET 3
Cette requête renvoie le jeu de résultats suivant:
id | Nom d'utilisateur |
---|---|
3 | Utilisateur3 |
4 | Utilisateur4 |
Notez que dans cette syntaxe alternative les arguments ont leurs positions changées:
le premier argument représente le nombre de lignes à renvoyer dans le jeu de résultats;
le second argument représente le décalage.