J'ai regardé autour de moi mais je n'ai pas réussi à trouver une solution, alors j'espère que quelqu'un pourra m'aider.Supprimer les entrées en double de la base de données avec les conditions
J'ai une table MySQL des résultats d'une application d'enregistrement interne qui enregistre un résultat d'un contrôle de routine, il y a un certain nombre de routines de contrôle qui sont identifiés à la colonne de suivi:
id (int)(PK), tracker (int), time (timestamp), result (int)
Un seul résultat doit être enregistré si le résultat précédent n'est pas le même, seules les modifications doivent être capturées. Malheureusement, cela a été ignoré quand il a été construit (pressé) il y a un mois et les résultats ont été enregistrés à l'aveugle sans aucun contrôle sur les résultats précédents. Cela a maintenant été enregistré mais il me reste encore quelques milliers de lignes dont un nombre significatif sont des doublons et je suis en train de les effacer pour laisser les points de changement.
Je dois donc parcourir chaque ligne, regarder le résultat précédent enregistré par ce tracker et supprimer la ligne si c'est la même chose, c'est un peu au-delà de mon expérience avec MySQL et les tentatives que j'ai faites jusqu'ici été assez pauvre!
Quelqu'un peut-il aider?
Top a fait ce que je voulais, réduit le nombre de lignes d'environ 90%, ce qui devrait certainement accélérer les requêtes et les sauvegardes. Merci beaucoup! – Duncan
Pourquoi avez-vous besoin de la sous-requête wrapper x dans la deuxième requête suggérée? – MattSmith
@MattSmith: Sans le wrapper, vous obtiendrez une erreur MySQL # 1093 concernant le référencement de la table qui est en train de muter. –