Maison >base de données >tutoriel mysql >Comment supprimer les lignes en double d'une table sans créer une nouvelle table ?

Comment supprimer les lignes en double d'une table sans créer une nouvelle table ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-26 01:56:09630parcourir

How to Delete Duplicate Rows from a Table Without Creating a New Table?

Suppression des lignes en double d'une table

Vous disposez d'une table avec des enregistrements en double et vous souhaitez les supprimer sans créer une nouvelle table. En supposant que vous disposez d'un champ ID unique, vous pouvez utiliser la requête suivante :

DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY Field1, Field2, Field3, ...
)

Exemple : Disons que vous avez la table suivante :

id action L1_name L1_data ... L11_data
1 action1 name1 data1 ... company1
2 action2 name2 data2 ... company2
3 action1 name1 data1 ... company1

Le la requête supprimerait l'enregistrement en double avec l'identifiant 3, vous laissant avec ce qui suit table :

id action L1_name L1_data ... L11_data
1 action1 name1 data1 ... company1
2 action2 name2 data2 ... company2

Remarques :

  • "Table" et "ID" sont des noms représentatifs.
  • La liste des champs ( "Field1, Field2, ...") doit inclure tous les champs à l'exception de l'ID.
  • Cette requête peut être lente en fonction du nombre de champs et lignes.
  • Si vous n'avez pas d'index unique, ajoutez-en un pour améliorer les performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn