Question

Je le tableau suivant

Id   Value
1     3
1     12
1     67
2     7
2     99
5     30
5     33
5     4
5     87
5     12
5     1

Je voudrais le mettre à jour à cette table.

Id  UniqueIdBySubSet    Value
1           1             3
1           2             12
1           3             67
2           1             7
2           2             99
5           1             30
5           2             33
5           3             4
5           4             87
5           5             12
5           6             1

J'ai trouvé le fil parfait sur le SO, mais il était pour MSSQL. J'utilise MySQL 4.1.10.

L'autre fil peut être trouvé ici: séquences Génération pour des sous-ensembles d'une table .

Est-ce que quelqu'un sait comment je peux le faire dans une base MySQL?

Merci, Jean-François

Était-ce utile?

La solution

SET  @r := 0;
SET  @id := 0;
UPDATE  mytable m
SET     m.UniqueIdBySubSet = IF(@id = id, @r := @r + 1, @r := (@id := id) - id)
ORDER BY
        id, value;

Autres conseils

Ecrire un script rapide pour le faire. Il devrait prendre moins de 10 lignes de code en php.

Je pense que vous trouverez cet article utile. En bref:. Vous ne pouvez pas le faire dans exactement une requête, mais vous pouvez le faire en deux (charger vos données dans une nouvelle table et exécuter une instruction d'insertion)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top