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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow