J'ai une table avec des colonnes « step_ID », « goal_ID » et « STEP_NUMBER ».Comment mettre à jour un groupe d'enregistrements avec des valeurs incrémentielles
step_ID serait la clé primaire, auto-incrémentées
groupes goal_ID les différentes étapes en objectifs spécifiques
step_number est actuellement 0 partout, nouvellement créé
Je veux mettre à jour la table afin que step_number est réglé sur 0, 1, 2, 3, etc. pour chaque groupe de "ID_objectif" similaire, trié par le ID_ID.
Dit différemment, je voudrais numéroter les étapes pour un objectif donné de 0 à autant de buts qu'il y a, dans l'ordre croissant de step_ID.
J'ai essayé l'évidence:
$query = " UPDATE steps SET step_num = step_num + 1 WHERE goal_ID='689' ORDER BY step_ID";
mais qui définit simplement toutes les lignes à 1, (. Comme prévu)
J'ai essayé également d'utiliser divers sous-requêtes, mais je suis arrivé une erreur disant que je ne pourrais pas » t met à jour une table utilisée dans la clause FROM.
Pensées?
Je reçois toujours une erreur: "Vous ne pouvez pas spécifier les 'étapes' de la table cible pour la mise à jour dans la clause FROM"? – Symmitchry
@Symmitchry - On dirait que vous avez un bogue dans MySQL. J'ai posté une solution de contournement. – Thomas