Maison >base de données >tutoriel mysql >Comment puis-je supprimer les lignes en double dans MySQL sans utiliser de scripts externes ?
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!