Comment supprimer les lignes en double dans la table MySQL
Dans la gestion de bases de données, éliminer les données en double est une tâche courante. Dans MySQL, cela peut être réalisé en utilisant la commande DELETE.
Ce qui suit est un exemple de tableau :
<code class="language-sql">CREATE TABLE names ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY (id) );</code>
Supposons que la table contienne des doublons :
<code class="language-sql">INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('yahoo'); INSERT INTO names (name) VALUES ('msn'); INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('yahoo'); SELECT * FROM names;</code>
Pour supprimer toutes les lignes en double (conserver la ligne avec le plus petit ID), utilisez la requête suivante :
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id > n2.id AND n1.name = n2.name;</code>
Alternativement, pour conserver la ligne avec le plus grand ID, utilisez la requête suivante :
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id < n2.id AND n1.name = n2.name;</code>
Avertissement : Assurez-vous de sauvegarder vos tables avant d'exécuter toute requête de suppression pour éviter toute perte accidentelle de données.
Pour les grands tableaux, il est recommandé d'utiliser les méthodes INSERT et DISTINCT plus rapides :
```sql CRÉER UNE TABLE TEMPORAIRE temp_names SELECT DISTINCT identifiant, nom DE noms ; TRUNCATE TABLE noms ; INSERT INTO noms (id, nom) SELECT identifiant, nom FROM noms_temp; DROP TABLE noms_temp; ```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!