Maison > base de données > tutoriel mysql > Comment supprimer les lignes en double dans MySQL en utilisant uniquement des requêtes SQL ?

Comment supprimer les lignes en double dans MySQL en utilisant uniquement des requêtes SQL ?

Mary-Kate Olsen
Libérer: 2025-01-24 02:15:09
original
432 Les gens l'ont consulté

How to Remove Duplicate Rows in MySQL Using Only SQL Queries?

Supprimer les lignes en double dans MySQL sans scripts externes

Dans certains cas, vous devrez peut-être supprimer les lignes en double dans une table MySQL en fonction d'une combinaison spécifique de colonnes. Ce qui suit explique comment y parvenir en utilisant uniquement des requêtes SQL, en évitant les scripts côté serveur.

Contexte

Comme indiqué dans la question initiale, le tableau contient plusieurs colonnes, notamment « id », « url », « title », « company » et « site_id ». L'objectif est de supprimer les lignes où « titre », « entreprise » et « site_id » ont la même valeur.

Solution

Un moyen efficace de supprimer les lignes en double consiste à utiliser un index UNIQUE sur ces trois colonnes. La syntaxe pour créer un tel index est la suivante :

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

Veuillez noter que le mot-clé « IGNORE » est utilisé dans la déclaration. Cela indique à MySQL d'ignorer les lignes en double lors de la création de l'index. Cela signifie que ces lignes en double seront supprimées du tableau.

Avantages supplémentaires

En plus de supprimer les lignes en double existantes, l'ajout d'un index UNIQUE empêche l'insertion de lignes en double à l'avenir. Toute tentative d'insertion d'une ligne où une combinaison de « site_id », « title » et « company » existe déjà entraînera une erreur.

Remarque :

Veuillez noter que cette fonctionnalité a été supprimée dans MySQL 5.7 et versions ultérieures. Cette solution ne fonctionne donc plus avec ces versions de MySQL.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal