Ceci est une question MySQL:Réindexer une colonne de position dans mysql
J'ai une table avec la structure suivante. Chaque article est censé avoir une position, et chaque position ne doit être utilisée qu'une seule fois. Les positions devraient augmenter (donc s'il y a 40 items alors les positions devraient aller de 1-40).
Cependant les données de ce tableau sont partout (la même position étant utilisée plus d'une fois, certaines lignes sans position). Je voudrais réinitialiser la table en réindexant les positions. Je voudrais respecter les ordres existants (même s'ils ne sont pas parfaits) en faisant cela (si possible - sinon les positions peuvent être écartées).
------------------------------------------------------
| reference | position | parent |
|-----------------|--------------------|--------------|
|ASHDFNS |2 |89 |
|BSHDFNS |2 |89 |
|CSHDFNS |1 |89 |
|DSHDFNS |100 |89 |
|ESHDFNS |8 |89 |
|FSHDFNS |22 |89 |
|ASHDFNS |1 |11 |
|BSHDFNS |22 |11 |
|CSHDFNS |333 |11 |
|-----------------|--------------------|--------------|
désiré
-------------------------------------------------------
| reference | position | parent |
|-----------------|--------------------|--------------|
|CSHDFNS |1 |89 |
|ASHDFNS |2 |89 |
|BSHDFNS |3 |89 |
|ESHDFNS |4 |89 |
|FSHDFNS |5 |89 |
|DSHDFNS |6 |89 |
|ASHDFNS |1 |11 |
|BSHDFNS |2 |11 |
|CSHDFNS |3 |11 |
|-----------------|--------------------|--------------|
EDIT: Désolé, il suffit d'incrémenter automatiquement la colonne de position ne fonctionne pas comme le tableau décrit les positions des éléments dans plusieurs parents (et les articles peuvent avoir plus d'un parent)
Pourquoi voulez-vous cela? Il y a des scénarios où cela pourrait être souhaitable (par exemple, que votre disque dur lise des sektors consécutifs sur le disque pour des lignes consécutives) mais cela est très micro-optimisant. Un bon index fera 99% du travail pour vous, l'ordre interne n'est vraiment pas important. – Konerak
La commande est significative - elle a un sens en soi dans le système. J'ai édité ma question pour enlever l'index (qui n'est pas pertinent à la question). Merci – calumbrodie
Pourquoi le downvote? – calumbrodie