Maison > base de données > tutoriel mysql > Comment supprimer efficacement les lignes non uniques dans MySQL 5.0 ?

Comment supprimer efficacement les lignes non uniques dans MySQL 5.0 ?

Mary-Kate Olsen
Libérer: 2024-12-27 11:01:08
original
605 Les gens l'ont consulté

How to Efficiently Delete Non-Unique Rows in MySQL 5.0?

Suppression de lignes non uniques dans MySQL à l'aide d'une instruction Select

La syntaxe de requête fournie

DELETE FROM posts Where> tente de supprimez les lignes qui n'ont pas d'identifiant unique de la table des publications. Cependant, cette syntaxe est incompatible avec MySQL 5.0.</p>
<p><strong>Réécriture de la requête</strong></p>
<p>Pour rendre la requête compatible avec MySQL 5.0, elle doit être réécrite comme suit :</p> <p>`<pre class="brush:php;toolbar:false">DELETE FROM posts WHERE id IN (</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
Copier après la connexion

)
`

Comprendre la requête révisée

La requête révisée utilise l'opérateur IN pour comparez la colonne id de la table posts avec le jeu de résultats de la sous-requête. La sous-requête récupère les ID des lignes qui ont plusieurs occurrences dans la table posts, indiquant des ID non uniques. En utilisant l'opérateur IN, la requête sélectionne uniquement les lignes avec des identifiants non uniques à supprimer.

Considérations supplémentaires

Comme mentionné dans la référence de la réponse, il est essentiel à noter que MySQL ne permet pas de modifier la même table à partir d'une sous-requête au sein de la même requête. Pour contourner cette restriction, la requête peut être divisée en deux requêtes distinctes : une requête SELECT pour identifier les lignes à supprimer, suivie d'une requête DELETE pour exécuter la suppression. Alternativement, une sous-requête imbriquée avec un alias peut être utilisée pour permettre la suppression au sein d'une seule requête.

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
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal