Maison > base de données > tutoriel mysql > Comment supprimer les lignes en double d'une table MySQL (versions 5.0 et supérieures) ?

Comment supprimer les lignes en double d'une table MySQL (versions 5.0 et supérieures) ?

Barbara Streisand
Libérer: 2024-12-25 20:20:14
original
654 Les gens l'ont consulté

How to Delete Duplicate Rows from a MySQL Table (Versions 5.0 and Above)?

Suppression des doublons d'une table MySQL

Dans MySQL, vous pouvez rencontrer un scénario dans lequel vous devez supprimer les lignes en double d'une table tout en vous assurant identification unique via une colonne ID. Bien que la requête fournie soit valide pour MySQL 5.7 et supérieur, elle ne fonctionne pas dans les versions antérieures comme la 5.0.

Pour obtenir le comportement souhaité dans MySQL 5.0, vous pouvez réécrire la requête en utilisant l'opérateur IN plutôt que = pour comparer les ID avec le jeu de résultats de la sous-requête. De plus, vous ne pouvez pas modifier directement une table à partir d'une sous-requête au sein de la même requête.

Pour résoudre cette limitation, vous pouvez soit exécuter des requêtes SELECT et DELETE distinctes, soit utiliser des sous-requêtes imbriquées pour alias le résultat de la sous-requête interne. Voici un exemple d'approche de sous-requête imbriquée :

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

Alternativement, comme suggéré par Mchl, vous pouvez utiliser des jointures pour supprimer les lignes en double en joignant la table avec elle-même en fonction de la colonne ID et en utilisant la clause HAVING pour filtrer les identifiants en double.

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