Maison > base de données > tutoriel mysql > Comment supprimer les lignes en double dans MySQL 5.0 ?

Comment supprimer les lignes en double dans MySQL 5.0 ?

Mary-Kate Olsen
Libérer: 2024-12-31 03:55:09
original
779 Les gens l'ont consulté

How to Delete Duplicate Rows in MySQL 5.0?

Suppression des lignes en double dans MySQL 5.0

Le code fourni utilise une sous-requête pour identifier les ID en double dans la table des publications et tenter de les supprimer. Cependant, cette approche est incompatible avec MySQL 5.0. Pour contourner ce problème, nous devons modifier le code pour utiliser une syntaxe différente.

Réécriture du code

Le code révisé pour supprimer les lignes en double de la table des publications est comme suit :

DELETE FROM posts WHERE id IN (
    SELECT id
    FROM (
        SELECT id, COUNT(id) AS duplicate_count
        FROM posts
        GROUP BY id
        HAVING duplicate_count > 1
    ) AS subquery
)
Copier après la connexion

Ce code utilise une sous-requête imbriquée pour identifier les identifiants en double. La sous-requête regroupe d'abord les lignes par colonne id et compte le nombre d'occurrences de chaque ID. Les lignes avec un nombre de doublons supérieur à 1 sont ensuite sélectionnées et leurs ID sont renvoyés sous forme d'ensemble de résultats.

La requête externe utilise l'opérateur IN pour faire correspondre les ID renvoyés par la sous-requête avec les ID de la table des publications. Cela garantit que seules les lignes en double sont supprimées.

Notes supplémentaires

  • Il est important de noter que l'utilisation de sous-requêtes pour supprimer des données peut être inefficace, surtout si la sous-requête renvoie un grand nombre de lignes.
  • Pour de meilleures performances, il est recommandé d'utiliser une opération de jointure au lieu d'une sous-requête. Cependant, cela nécessite MySQL 5.1 ou supérieur.

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