MYSQL - génération de séquences de sous-ensemble dans une table
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
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