Maison > base de données > tutoriel mysql > le corps du texte

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

Mary-Kate Olsen
Libérer: 2024-11-25 19:00:17
original
519 Les gens l'ont consulté

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;
Copier après la connexion

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;
Copier après la connexion

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
Copier après la connexion

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal