[MySQL] numéroter les résultats

Résolu/Fermé
chmanu Messages postés 166 Date d'inscription mardi 15 mai 2001 Statut Membre Dernière intervention 3 septembre 2012 - 5 oct. 2004 à 10:38
 pierre - 23 mars 2011 à 20:41
Bonjour,

Ma demande sera peut etre simpliste, mais je n ai pas trouvé la réponse alors je vous la soumet.
Je cherche à avoir une requete me permettant de "numéroter" mes résultats.

En gros, je sors ca :

+-------------------+---------------+
| Calcul1         |       Calcul2 |
+-------------------+---------------+
|                11 |             7 |
|                 7 |             8 |
|                 8 |             6 |
|                 7 |             6 |
|                 6 |             6 |
|                 8 |             5 |
|                 8 |             5 |
|                 8 |             5 |
+-------------------+---------------+


et je voudrais ca :

+-------------------+---------------+----+
| Calcul1         |       Calcul2 |    |
+-------------------+---------------+----+
|                11 |             7 |   1|
|                 7 |             8 |   2|
|                 8 |             6 |   3|
|                 7 |             6 |   4|
|                 6 |             6 |   5|
|                 8 |             5 |   6|
|                 8 |             5 |   7|
|                 8 |             5 |   8|
+-------------------+---------------+----+



J ai vu sur le web une fonction SQL qui s'appelle NUMBER, mais elle doit etre propre à un SGBD car non recunnu sous MySQL

Si vous avez une solution,
Merci


Manu

PS : la solution doit etre SQL. Je ne travaille pas avec PHP

5 réponses

Sivrît a trouvé https://www.developpez.net/forums/d205704/bases-donnees/mysql/sql-procedural/statistique-numero-ligne-mysql/

SET @compteur=0;

SELECT calcul1, calcul2, @compteur:=@compteur+1 FROM table

doc sur les variables utilisateur MySQL : http://dev.mysql.com/doc/refman/5.0/fr/variables.html
6
Cereal_Killer Messages postés 3 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 8 février 2005 1
5 oct. 2004 à 19:14
Il faut recréer toute la table de données, voila la requète pour que numérote tout seuL:

requête SQL :
CREATE TABLE `*nom de la table*` (
`*nom du champ de numérotation*` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
autres champs que tu veux...
);

*ce qu'il y a entre étoiles ca veut dire que tu dois renommer avec le nom que tu veux. (sans les etoiles hein). pour le INT (11) tu peux mettre un autre nombre mais je pense que 99999999999 comme nombre maximum c assez non? Bon ben voila, en esperant d'avoir bien répondu à ta question, je te salue, cher programmeur!
1
chmanu Messages postés 166 Date d'inscription mardi 15 mai 2001 Statut Membre Dernière intervention 3 septembre 2012 28
6 oct. 2004 à 08:40
Merci beaucoup.
cette solution n'est pas des plus propres car création d'une table temporaire sur le serveur - que je supprime par la suite juste pour un select et donc il faut "modifier" la base pour juste une sélection. Mais je vais l adopter car j avais trouvé un tutoriel qui me faisait ca :
http://sqlpro.developpez.com/cours/jointuremanquante/
mais ma requete arrivait à une trentaine de lignes, et je n arrivait à avoir que la solution 1 alors que je voulais la 2 et elle mettait un truc comme 4s (de traitement uniquement).

A +


Chmanu
0
Bonjour et merci jqp pour cette information, c'est exactement ce que je recherchais !

J'ai une petite question... : comment renommer la colonne ? elle apparait avec le nom long suivant :
@compteur := @compteur + 1
Je voudrais qu'elle apparaisse avec n° (ou #) pour gagner de la place

Merci de votre réponse !

@+
Z
0
tu mets
"@compteur := @compteur +1 AS 'n°'"
Normalement ca devrait marcher comme ca ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ce sujet : exactement ce que j'avais besoin... merci à tous!
0