Supprimer plusieurs enregistrements et remplacer par un seul

Eléphanteau du PHP | 14 Messages

15 juin 2014, 18:36

Bonjour,

Est-il possible de supprimer plusieurs enregistrements dans une table après avoir fait un "résumé". Et insérer cet enregistrement "résumé" dans cette même table. Par exemple je veux faire:
1)

Code : Tout sélectionner

INSERT INTO T1 SELECT nombre , id1, id2, Min( convert( col1 , char( 8 ) ) ) , Min( convert( col2 , char( 8 ) ) ) , Min( convert( col3 , char( 8 ) ) ) FROM T2 GROUP BY id1
2)

Code : Tout sélectionner

delete from T1 where id1 IN(select...)
Donc si je groupe n lignes en une ligne L. Je supprime les n lignes puis j'insère L à la place.
Et je veux tout ça en une commande. Est ce possible?

Je suis sous MySQL


Merci infiniment.

ViPHP
ViPHP | 2577 Messages

17 juin 2014, 13:50

A mon avis, il vaut mieux faire ca en 3 étapes : select, delete et insert.
Tu peux ajouter un count(*) dans le select pour ne pas faire le delete et l'insert s'il n'y a qu'une ligne.

Pour faire ca en 1 commande, il faut faire une procédure stockée qui fera les 3 opérations avec 1 appel depuis PHP.