Maison >base de données >tutoriel mysql >Comment ajouter un compteur incrémentiel à une requête MySQL SELECT ?

Comment ajouter un compteur incrémentiel à une requête MySQL SELECT ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-25 19:00:17550parcourir

How to Add an Incrementing Counter to a MySQL SELECT Query?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn