DELETE lignes en doublon

Résolu
mikesunshine59 Messages postés 75 Statut Membre -  
mikesunshine59 Messages postés 75 Statut Membre -
Bonjour,

J'essaye de supprimer les lignes en doublon qui ont le même Timestamp.

Voici ma requete:

DELETE FROM matable WHERE (SELECT * FROM matable as t1, matable as t2 WHERE t1.Timestamp = t2.Timestamp AND t1.Type = 'orange')

Pouvez vous m'aider svp ?

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour

    ça serait plutot :
    DELETE
    FROM tatable 
    HAVING count(Timestamp)>1
    

    1
    1. mikesunshine59 Messages postés 75 Statut Membre
       
      La réponse est :

      DELETE t1 FROM matable AS t1, matable AS t2 WHERE t1.Timestamp = t2.Timestamp AND t1.Type = 'orange'
      0
    2. mikesunshine59 Messages postés 75 Statut Membre
       
      DELETE
      FROM tatable
      HAVING count(Timestamp)>1

      Ca ne fonctionne pas Jordane.

      Et ma requête non plus.

      DELETE FROM matable WHERE (SELECT * FROM matable as t1, matable as t2 WHERE t1.Timestamp = t2.Timestamp AND t1.Type = 'orange')

      En fait le Type doit être égal à 'orange' avec un TIMESTAMP identique à un autre type.

      Tu as une idée stp?
      0
    3. mikesunshine59 Messages postés 75 Statut Membre
       
      DELETE FROM matable
      LEFT OUTER JOIN (
      SELECT max(Type) as Type, Timestamp
      FROM matable
      GROUP BY Timestamp
      ) as t1
      ON matable.id = t1.id
      WHERE t1.id IS NULL

      Ca ne fonctionne pas :(
      0
    4. mikesunshine59 Messages postés 75 Statut Membre
       
      La réponse est
      ALTER IGNORE TABLE matable ADD UNIQUE INDEX(Timestamp)
      0