MySQL LIMITE ET DÉCALAGE avec exemples
Qu'est-ce que le mot-clé LIMIT ?
Le mot-clé limit est utilisé pour limiter le nombre de lignes renvoyées dans un résultat de requête.
Il peut être utilisé conjointement avec les commandes SELECT, UPDATE OU DELETE. Syntaxe du mot clé LIMIT.
La syntaxe du mot-clé LIMIT est la suivante
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
ICI (en anglais seulement)
- « SÉLECTIONNER {nom(s) de champ | *} DEPUIS nom(s) de table" est le Instruction SELECT contenant les champs que nous souhaitons renvoyer dans notre requête.
- "[OÙ condition]" est facultatif mais lorsqu'il est fourni, peut être utilisé pour spécifier un filtre sur l'ensemble de résultats.
- « LIMITE N » est le mot clé et N est n'importe quel nombre commençant à 0, mettre 0 comme limite ne renvoie aucun enregistrement dans la requête. Mettre un nombre, par exemple 5, renverra cinq enregistrements. Si les enregistrements de la table spécifiée sont inférieurs à N, alors tous les enregistrements de la table interrogée sont renvoyés dans le jeu de résultats.
Regardons un exemple -
SELECT * FROM members LIMIT 2;
| membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm | NULL |
| 2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
Comme vous pouvez le voir sur la capture d'écran ci-dessus, seuls deux membres ont été renvoyés.
Obtenir une liste de dix (10) membres uniquement à partir de la base de données
Supposons que nous souhaitions obtenir une liste des 10 premiers membres enregistrés de la base de données Myflix. Nous utiliserions le script suivant pour y parvenir.
SELECT * FROM members LIMIT 10;
L'exécution du script ci-dessus nous donne les résultats indiqués ci-dessous
| membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Female | 21-07-1980 | NULL | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm | NULL |
| 2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
| 3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | rm@tstreet.com | NULL |
| 4 | Gloria Williams | Female | 14-02-1984 | NULL | 2nd Street 23 | NULL | NULL | NULL | NULL |
| 5 | Leonard Hofstadter | Male | NULL | NULL | Woodcrest | NULL | 845738767 | NULL | NULL |
| 6 | Sheldon Cooper | Male | NULL | NULL | Woodcrest | NULL | 976736763 | NULL | NULL |
| 7 | Rajesh Koothrappali | Male | NULL | NULL | Woodcrest | NULL | 938867763 | NULL | NULL |
| 8 | Leslie Winkle | Male | 14-02-1984 | NULL | Woodcrest | NULL | 987636553 | NULL | NULL |
| 9 | Howard Wolowitz | Male | 24-08-1981 | NULL | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me | NULL |
Notez que seuls 9 membres ont été renvoyés dans notre requête puisque N dans la clause LIMIT est supérieur au nombre total d'enregistrements dans notre table.
Réécrire le script ci-dessus comme suit
SELECT * FROM members LIMIT 9;
Renvoie uniquement 9 lignes dans notre jeu de résultats de requête.
Utilisation de OFF SET dans la requête LIMIT
Le COMPENSER value est également le plus souvent utilisé avec le mot-clé LIMIT. La valeur OFF SET nous permet de spécifier quelle ligne démarrer pour récupérer les données
Supposons que nous souhaitions obtenir un nombre limité de membres à partir du milieu des lignes, nous pouvons utiliser le mot-clé LIMIT avec la valeur de décalage pour y parvenir. Le script ci-dessous récupère les données à partir de la deuxième ligne et limite les résultats à 2.
SELECT * FROM `members` LIMIT 1, 2;
Exécuter le script ci-dessus dans MySQL L'établi contre myflixdb donne les résultats suivants.
| membership_ number | full_ names | gender | date_of _birth | date_of _registration | physical_ address | postal_ address | contact_ number | credit_ card_ number | |
|---|---|---|---|---|---|---|---|---|---|
| 2 | Janet Smith Jones | Female | 23-06-1980 | NULL | Melrose 123 | NULL | NULL | jj@fstreet.com | NULL |
| 3 | Robert Phil | Male | 12-07-1989 | NULL | 3rd Street 34 | NULL | 12345 | rm@tstreet.com | NULL |
Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned
Quand devons-nous utiliser le mot-clé LIMIT ?
Supposons que nous développions l'application qui s'exécute sur myflixdb. Notre concepteur de système nous a demandé de limiter le nombre d'enregistrements affichés sur une page à environ 20 enregistrements par page afin de contrer les temps de chargement lents. Comment pouvons-nous mettre en œuvre le système qui répond à ces exigences des utilisateurs ? Le mot-clé LIMIT est utile dans de telles situations. Nous serions en mesure de limiter les résultats renvoyés par une requête à 20 enregistrements seulement par page.
Résumé
- Le mot-clé LIMIT de est utilisé pour limiter le nombre de lignes renvoyées par un jeu de résultats.
- Le nombre LIMIT peut être n’importe quel nombre à partir de zéro (0) vers le haut. Lorsque zéro (0) est spécifié comme limite, aucune ligne n'est renvoyée du jeu de résultats.
- La valeur OFF SET nous permet de spécifier quelle ligne démarrer pour récupérer les données
- Il peut être utilisé conjointement avec les commandes SELECT, UPDATE OU DELETE. Syntaxe du mot clé LIMIT.
