J'ai une table censée conserver une trace de visiteurs dans un profil donné (ID utilisateur à paire ID utilisateur). Il s'avère que ma requête SQL était un peu éteinte et produit plusieurs paires au lieu de simples comme prévu. Avec le recul, j'aurais dû imposer une contrainte unique sur chaque paire id + id. Maintenant, comment pourrais-je nettoyer la table? Ce que je veux faire est de supprimer toutes les paires en double et n'en laisser qu'un seul.Supprimer tous les enregistrements en double, sauf un
Ainsi, par exemple changer ceci:
23515 -> 52525 date_visited
23515 -> 52525 date_visited
23515 -> 52525 date_visited
12345 -> 54321 date_visited
12345 -> 54321 date_visited
12345 -> 54321 date_visited
12345 -> 54321 date_visited
23515 -> 52525 date_visited
...
Dans ceci:
23515 -> 52525 date_visited
12345 -> 54321 date_visited
Mise à jour: Voici la structure de table comme l'a demandé:
id int(10) UNSIGNED Non Aucun AUTO_INCREMENT
profile_id int(10) UNSIGNED Non 0
visitor_id int(10) UNSIGNED Non 0
date_visited timestamp Non CURRENT_TIMESTAMP
Quelle est la structure de la table s'il vous plaît? Y a-t-il une troisième colonne à égalité de valeurs? – gbn
@gbn: La structure de la table a été ajoutée (MySQL). La troisième colonne est de garder une trace de la dernière fois qu'un utilisateur a visité un profil. La structure devrait probablement être modifiée avec une contrainte sur profile_id & visitor_id. P.S: Je n'ai pas le SQL remplissant la table en ce moment mais c'est quelque chose dans le genre de 'if exists update timestamp sinon create record'. –