Maison> base de données> tutoriel mysql> le corps du texte

doublons de données de requête MySQL

WBOY
Libérer: 2023-05-12 10:00:37
original
2858 Les gens l'ont consulté

MySQL est un système de gestion de bases de données relationnelles populaire qui peut être utilisé pour stocker, gérer et interroger des bases de données. Dans MySQL, nous devons parfois interroger des données en double. Cet article vous présentera comment utiliser MySQL pour interroger la duplication de données.

Première étape : Créez une base de données dans MySQL et ajoutez des données

Créez une base de données dans MySQL et ajoutez une table avec des données en double. Voici un exemple de requête SQL :

CREATE DATABASE testdb; USE testdb; CREATE TABLE users ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, email VARCHAR(50) NOT NULL ); INSERT INTO users (name, email) VALUES ('Tom', 'tom@email.com'), ('Steve', 'steve@email.com'), ('John', 'john@email.com'), ('Tom', 'tom@email.com'), ('Jim', 'jim@email.com');
Copier après la connexion

Cette requête créera une nouvelle base de données nommée "testdb" et y créera une table nommée "users". Le tableau contient trois colonnes : "id" (clé primaire), "name" et "email". Nous avons inséré cinq lignes, dont deux contenaient le même nom et la même adresse e-mail.

Étape 2 : Rechercher les données en double

Maintenant, nous devons trouver toutes les lignes en double. Pour ce faire, nous utiliserons une requête imbriquée :

SELECT name, email, COUNT(*) c FROM users GROUP BY name, email HAVING c > 1;
Copier après la connexion

Cette requête renverra toutes les lignes où le nom et l'adresse email apparaissent plus d'une fois dans le tableau. Nous utilisons l'instruction GROUP BY pour regrouper par nom et adresse e-mail, et l'instruction HAVING pour filtrer les groupes comportant plus d'une ligne dans le groupe.

Après avoir exécuté cette requête, nous obtiendrons les résultats suivants :

+------+----------------+---+ | name | email | c | +------+----------------+---+ | Tom | tom@email.com | 2 | +------+----------------+---+
Copier après la connexion

Comme nous pouvons le voir, cette requête a trouvé les données en double que nous avons ajoutées dans le tableau. Les résultats affichent les noms et adresses e-mail en double ainsi que le nombre de fois qu'ils apparaissent dans le tableau.

Troisième étape : supprimer les doublons

Si nous voulons supprimer toutes les lignes en double, nous pouvons utiliser la requête suivante pour les supprimer :

DELETE FROM users WHERE id NOT IN ( SELECT id FROM ( SELECT MIN(id) id FROM users GROUP BY name, email ) t );
Copier après la connexion

Ceci La requête supprimera toutes les lignes en double qui ne correspondent pas au plus petit identifiant. Nous avons utilisé une sous-requête pour sélectionner le plus petit identifiant dans chaque groupe répétitif. Cette sous-requête utilise d'abord une instruction GROUP BY pour regrouper par nom et adresse e-mail, puis sélectionne le plus petit ID de chaque groupe. La requête principale utilise une instruction NOT IN et une sous-requête pour supprimer toutes les lignes qui ne contiennent pas le plus petit ID.

Après avoir exécuté cette requête, nous pouvons réexécuter la requête ci-dessus pour vérifier si les données en double ont été supprimées avec succès.

Summary

La recherche de données en double dans MySQL est facile. Nous pouvons utiliser des requêtes imbriquées et des instructions GROUP BY pour rechercher les lignes en double et les supprimer à l'aide des instructions DELETE. En utilisant ces technologies, nous pouvons gérer et maintenir facilement la base de données.

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 téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!