Maison >base de données >tutoriel mysql >Comment puis-je supprimer les lignes en double dans MySQL sans utiliser de scripts externes ?

Comment puis-je supprimer les lignes en double dans MySQL sans utiliser de scripts externes ?

DDD
DDDoriginal
2025-01-24 02:09:09458parcourir

How Can I Remove Duplicate Rows in MySQL Without Using External Scripts?

Suppression des lignes en double dans MySQL : une approche basée uniquement sur la base de données

Ce guide montre comment supprimer efficacement les lignes en double d'une table MySQL en fonction de colonnes spécifiques (par exemple, site_id, title, company) sans recourir à des scripts externes. Bien que GROUP BY puisse identifier les doublons, cela nécessite un processus de suppression distinct. Une méthode plus directe exploite la UNIQUE fonctionnalité d'index de MySQL.

La UNIQUE Méthode d'indexation (obsolète)

Auparavant, l'ajout d'un index UNIQUE avec le mot-clé IGNORE offrait une solution. MySQL rejetterait automatiquement les lignes en double lors de la création de l'index. La syntaxe serait :

<code class="language-sql">ALTER IGNORE TABLE jobs
ADD UNIQUE INDEX idx_name (site_id, title, company);</code>

Remarque importante : Cette ALTER IGNORE TABLE approche est obsolète dans MySQL 5.6 et entièrement supprimée dans MySQL 5.7 et les versions ultérieures. Par conséquent, cette méthode n'est pas fiable pour les installations MySQL actuelles.

(Méthode alternative requise pour les versions MySQL modernes) Pour supprimer les doublons dans les versions MySQL plus récentes, une approche en plusieurs étapes utilisant ROW_NUMBER() est nécessaire. Cela nécessitera une requête plus complexe, mais cela reste une solution basée uniquement sur la base de données. Des instructions supplémentaires sur cette méthode alternative sont disponibles dans d’autres ressources.

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