Y a-t-il un moyen de supprimer toutes les lignes répétées d'une base de données MySQL?Supprimer les lignes répétées de la table MySQL
Répondre
Il y a quelques années, quelqu'un a demandé un moyen de supprimer les doublons. Subselects permettent avec une requête comme ceci dans MySQL 4.1:
DELETE FROM some_table WHERE primaryKey NOT IN
(SELECT MIN(primaryKey) FROM some_table GROUP BY some_column)
Bien sûr, vous pouvez utiliser MAX(primaryKey)
aussi bien si vous voulez garder le nouvel enregistrement avec la valeur en double au lieu du plus ancien enregistrement de la valeur en double .
Pour comprendre comment cela fonctionne, regardez à la sortie de cette requête:
SELECT some_column, MIN(primaryKey) FROM some_table GROUP BY some_column
Comme vous pouvez le voir, cette requête renvoie la clé primaire pour le premier enregistrement contenant chaque valeur de some_column. Logiquement, alors, toute valeur de clé NON trouvée dans cet ensemble de résultats doit être un doublon, et par conséquent, elle doit être supprimée.
Ces questions/réponses pourraient vous intéresser:
et l'idée qui est souvent utilisé lorsque vous travaillez avec une grande table est à:
- Créer une nouvelle table
- Insérez dans ce tableau les enregistrements uniques (c.-à-d. une seule version des doublons dans la table d'origine, en utilisant généralement un
select distinct
) - et utilisez cette nouvelle table dans votre application; ou déposez l'ancienne table et renommez la nouvelle à l'ancien nom.
bonne chose avec ce principe est que vous avez la possibilité de vérifier ce qui est dans la nouvelle table avant de laisser tomber l'ancien - toujours agréable de vérifier ce genre de chose ^^
- 1. Mysql ajouter index mult-colonne avec des lignes répétées
- 2. comment supprimer les lignes dupliquées d'une table dans mysql
- 3. Comment trouver des lignes répétées?
- 4. Les lignes de table MySQL DB disparaissent
- 5. Supprimer les lignes dupliquées dans la table MySQL mais la relation de clé étrangère existe?
- 6. Métadonnées MySQL pour les lignes de table
- 7. comment supprimer toutes les lignes de la table d'accès
- 8. MYSQL: supprimer toutes les lignes contenant la chaîne "foo" dans la table "bar"
- 9. Comment changer les lignes d'une table en fonction d'autres lignes de la table dans mysql?
- 10. Supprimer plusieurs lignes de mysql avec checkbox?
- 11. MySQL: Supprimer toutes les lignes de plus de 10 minutes
- 12. supprimer les lignes d'une table sauf la première 2
- 13. MySQL supprimer tous les index de la table
- 14. MySQL requête de sélection - supprimer les lignes indésirables
- 15. La meilleure façon de supprimer 5K lignes de la table InnoDB avec 30M lignes
- 16. Comment supprimer efficacement toutes les lignes d'une table dans DB2
- 17. mysql Tronquer table vs supprimer
- 18. Comment supprimer des lignes opposées de la table SQL
- 19. Supprimer les nouvelles lignes de la chaîne
- 20. iPhone: mêmes lignes répétées dans chaque section de UITableview groupée
- 21. Dans mysql, comment trouver des lignes répétées par rapport à tous les champs?
- 22. Déclencheur MySQL: est-il possible de supprimer des lignes si la table devient trop grande?
- 23. Supprimer toutes les lignes d'une table, jette nullpointer
- 24. Actualiser les lignes de la table
- 25. comment sélectionner les lignes de la table
- 26. Supprimer les valeurs Mysql
- 27. MySQL tentant de supprimer toutes les lignes qui ne sont pas contraints par la clé étrangère
- 28. Comment supprimer les lignes vides?
- 29. Trier les champs de la table mySQL
- 30. Ordre des lignes dans la table de jointures mysql
Que voulez-vous dire en disant " Répétez les lignes ", voulez-vous dire exactement des lignes égales ou des valeurs de colonne en double? –
Chaque colonne étant la même à l'exception de l'identifiant – Brian