J'ai un tableau avec les colonnes suivantes : id (AI, PK), name, surname, group, grade1, grade2, average
et je dois insérer à partir d'un script PHP la valeur moyenne de 'grade1'
et 'grade2'
dans la 'average'
colonne.
J'ai utilisé:
INSERT INTO `table_name`(`average`) SELECT AVG((`grade1` + `grade2`)/2.0) FROM table_name GROUP BY `id`
J'ai inséré les notes, mais d'une manière ou d'une autre, lorsque j'exécute l'instruction SQL, elle crée de nouvelles lignes uniquement avec les valeurs moyennes. Je dois METTRE À JOUR la colonne "moyenne" dans les lignes existantes, pas en créer de nouvelles.
Merci d'avance!
Vous semblez vouloir update
, non insert
:
update table_name
set average = (grade1 + grade2) / 2;
Je dois noter qu'avoir une telle colonne calculée est dangereux, car il peut se désynchroniser. Les colonnes générées sont beaucoup plus sûres, que vous pouvez exprimer comme suit :
alter table table_name add column average decimal(10, 2)
generated always as ( (grade1 + grade2) / 2);
Ceci est calculé lorsque la valeur est interrogée afin qu'elle soit toujours à jour.
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots