Supposons que j'ai plusieurs colonnes. Si 2 colonnes correspondent et sont exactement les mêmes, elles sont des doublons. Supposons que si le lien et la taille sont similaires pour 2 lignes ou plus, alors ces lignes sont des doublons. Comment puis-je obtenir ces doublons dans une liste et les traiter?Comment trouver des doublons dans MySQL
Répondre
retournera tous les enregistrements qui ont dups:
SELECT theTable.*
FROM theTable
INNER JOIN (
SELECT link, size
FROM theTable
GROUP BY link, size
HAVING count(ID) > 1
) dups ON theTable.link = dups.link AND theTable.size = dups.size
J'aime la sous-requête b/c je peux faire des choses comme tout sélectionner, mais le premier ou le dernier. (très facile à transformer en une requête de suppression alors).
Exemple: sélectionner tous les enregistrements en double, sauf celui avec l'ID max:
SELECT theTable.*
FROM theTable
INNER JOIN (
SELECT link, size, max(ID) as maxID
FROM theTable
GROUP BY link, size
HAVING count(ID) > 1
) dups ON theTable.link = dups.link
AND theTable.size = dups.size
AND theTable.ID <> dups.maxID
En supposant qu'aucun des id, lien ou taille peut être NULL, et id champ est la clé primaire. Cela vous donne l'ID des lignes en double. Méfiez-vous que le même identifiant peut figurer dans les résultats plusieurs fois, s'il y a trois lignes ou plus avec des valeurs de lien et de taille identiques.
select a.id, b.id
from tbl a, tbl b
where a.id < b.id
and a.link = b.link
and a.size = b.size
Si vous voulez le faire exclusivement dans SQL
, une sorte d'auto-jointure de la table (sur l'égalité des link
et size
) est nécessaire, et peut être accompagné de différents types d'élaboration. Puisque vous mentionnez aussi Python, je suppose que vous voulez faire le traitement en Python; dans ce cas, le plus simple est de construire un itérateur sur un lien 'SELECT * FROM thetable ORDER BY, taille , and process with
itertools.groupby using, as key, the
operator.itemgetter` pour ces deux champs; ceci présentera des regroupements naturels de chaque groupe de 1+ lignes avec des valeurs identiques pour les champs en question.
Je peux élaborer sur l'une ou l'autre option si vous clarifiez où vous voulez faire votre traitement et, idéalement, fournissez un exemple du type de traitement que vous voulez effectuer!
Je veux trouver les lignes qui sont des «doublons» en fonction de certains attributs. Ensuite, je veux calculer la ligne "importante", et supprimer/mettre à jour le score de la ligne "duplicate"! Wow, vous avez écrit Python Cookbook !!! ??? Je l'ai sur mon bureau maintenant – TIMEX
Après avoir supprimé les doublons de la table MySQL, vous pouvez ajouter un index unique à la table donc pas plus de doublons peuvent être insérés:
create unique index theTable_index on theTable (link,size);
- 1. Comment trouver des doublons dans 2 colonnes non 1
- 2. Comment marquer des doublons dans un groupe donné dans MySQL?
- 3. Comment faire pour supprimer des doublons dans la table MySQL
- 4. Rails trouver requête sans doublons
- 5. Comment obtenir le code T-SQL pour trouver des doublons?
- 6. Plus rapide pour trouver des doublons conditionnés par le temps
- 7. Additionner des doublons dans Excel
- 8. trouver des phrases similaires dans mysql
- 9. Recherche et affichage des doublons
- 10. Afficher tous les doublons, côte à côte, dans MySQL
- 11. Combinaison de deux listes et suppression des doublons, sans suppression des doublons dans la liste d'origine
- 12. SQL pour trouver des doublons de clés étrangères dans un groupe
- 13. Comment éviter les doublons dans une énumération?
- 14. MySQL - trouver des tuples en double
- 15. Comment éviter les doublons?
- 16. Comment trouver des tags complémentaires?
- 17. Suppression des doublons d'une collection de listes
- 18. Comment trouver des données manquantes dans un tableau ou dans une table mySQL?
- 19. Asp.net: Comment trier une liste déroulante ayant des doublons?
- 20. Fonction de détection des doublons dans la feuille Excel
- 21. Suppression des doublons d'un tableau avant l'enregistrement
- 22. Comment trouver des "trous" dans un tableau
- 23. Comment trouver des traces dans SQL Server?
- 24. Trouver des entrées dans une table MySQL en fonction des conditions d'une autre table
- 25. Lucene AddIndexes (fusionner) - comment éviter les doublons?
- 26. Supprimer des doublons avec des mises en garde
- 27. Comment trouver les doublons dans une liste <T> rapidement, et mettre à jour la collection originale
- 28. groupement Xsl doublons problème
- 29. traiter les doublons dans un bst
- 30. Comment trouver des éléments superposés?
qu'avez-vous essayé? – SilentGhost