J'essaye de mettre à jour une table pour enlever tout mais la première instance d'un groupe. Fondamentalement, j'ai une table avec des données de véhicule liées à une police d'assurance. Chaque stratégie ne doit avoir qu'un seul power_unit
. Tout le reste devrait être une unité remorquée. Malheureusement, un bug a été la duplication des unités de puissance, et maintenant je dois nettoyer cela. Il y a ~ 10k enregistrements dans la base de données, et ~ 4k d'entre eux ont doublé les unités de puissance.Mettre à jour tous les résultats sauf un?
Les bits importants de ma table (appeler test1 pour l'instant) sont:
+------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| policy_id | int(10) | NO | | NULL | |
| power_unit | int(1) | NO | | 0 | |
+------------+---------+------+-----+---------+----------------+
Et certaines données de l'échantillon:
+----+-----------+------------+
| id | policy_id | power_unit |
+----+-----------+------------+
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 3 | 1 | 1 |
| 4 | 2 | 1 |
| 5 | 2 | 1 |
| 6 | 2 | 1 |
| 7 | 4 | 1 |
| 8 | 4 | 1 |
| 9 | 4 | 1 |
| 10 | 5 | 1 |
| 11 | 5 | 1 |
| 12 | 6 | 1 |
+----+-----------+------------+
En fait, je voudrais terminer là où policy_id
1 a un seul power_unit=1
. Idem pour policy_id
2, 3, 4, etc. Pour policy_id
6, rien ne devrait changer (il n'y a qu'une seule entrée, et c'est déjà un power_unit).
Je ne sais pas si c'est possible, mais c'était un problème intrigant pour moi, alors j'ai pensé que vous pourriez trouver la même chose.
Mise à jour:
Je ne veux pas DELETE
les lignes, juste UPDATE
qu'ils ont power_unit=0
.
Cela a fonctionné de manière fantastique. Je vous remercie! –