Incrémentation d'un compteur dans une requête MySQL SELECT
Dans MySQL, la sélection d'un compteur incrémentiel à côté d'autres colonnes peut être obtenue en utilisant une combinaison du SELECT instruction et manipulation de variables. Considérons la requête suivante :
SELECT name FROM table;
Pour ajouter un compteur incrémentiel à l'ensemble de résultats, nous pouvons utiliser une variable définie par l'utilisateur @rownum pour incrémenter de 1 pour chaque ligne et l'inclure dans la liste de sélection :
SELECT name, @rownum := @rownum + 1 AS row_number FROM your_table CROSS JOIN (SELECT @rownum := 0) AS r ORDER BY name;
La clause CROSS JOIN introduit la variable @rownum sans avoir besoin d'une requête distincte. La sous-requête dans CROSS JOIN initialise @rownum à 0. La clause ORDER BY garantit que les lignes sont classées par colonne de nom.
Cela nous permet de récupérer le résultat attendu :
Jay 1 roy 2 ravi 3 ram 4
Alternativement, nous pouvons diviser la requête en deux étapes, en définissant d'abord la variable définie par l'utilisateur, puis en sélectionnant les données :
SET @rownum := 0; SELECT name, @rownum := @rownum + 1 AS row_number FROM your_table ORDER BY name;
Ceci La méthode peut être préférée dans certains contextes, tels que les procédures stockées. Quelle que soit l'approche, les variables définies par l'utilisateur et les techniques de manipulation de variables permettent d'incrémenter un compteur dans une requête MySQL SELECT.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!