Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment trouver des enregistrements en double dans MySQL

Parfois, vous devrez peut-être trouver des enregistrements en double dans MySQL. Voici comment obtenir des enregistrements en double dans une table. Vous pouvez l'utiliser pour obtenir des lignes avec des valeurs en double dans MySQL

Comment trouver des valeurs en double dans MySQL

Voici les étapes pour obtenir des enregistrements en double dans MySQL. Supposons que vous ayez la table MySQL suivante avec des enregistrements en double.

mysql> créer une table dup_orders(id int, amount int);mysql> insérer dans dup_orders(id,amount) values(1, 100),(1,250),(2,350),(2,350);mysql> select * from dup_orders;+------+--------+| identifiant | montant |+------+--------+| 1 | 100 || 1 | 250 || 2 | 350 || 2 | 350 |+------+--------+

Lecture bonus :MySQL ajoute une contrainte unique

Rechercher les valeurs de ligne en double dans une colonne

Voici la requête SQL pour trouver des valeurs en double pour une colonne

SELECT col, COUNT(col)FROM table_nameGROUP BY colHAVING COUNT(col)> 1 ;

Dans la requête ci-dessus, nous faisons un GROUP BY pour la colonne pour laquelle nous voulons vérifier les doublons. Nous utilisons également une clause COUNT() et HAVING pour obtenir le nombre de lignes pour chaque groupe.

Lecture bonus :Colonne de renommage MySQL

Appliquons la requête ci-dessus pour nos dup_orders table, pour obtenir des valeurs en double pour id colonne

mysql> select id, montant du groupe dup_orders par id ayant count(id)>1 ;+------+--------+| identifiant | montant |+------+--------+| 1 | 100 || 2 | 350 |+------+--------+

Rechercher les valeurs de ligne en double dans plusieurs colonnes

Voici la requête SQL pour trouver des valeurs en double pour plusieurs colonnes

SELECT col1, col2,..., COUNT(*)FROM table_nameGROUP BY col1, col2, ...HAVING (COUNT(col1)> 1) AND (COUNT(col2)> 1) AND ... 

Dans la requête ci-dessus, nous faisons un GROUP BY de toutes les colonnes (col1, col2 ) pour qui nous voulons trouver des doublons. Nous utilisons également une clause COUNT() et HAVING pour obtenir le nombre de lignes pour chaque groupe.

Lecture bonus :comment dupliquer une table dans MySQL

Appliquons la requête ci-dessus pour nos dup_orders table, pour obtenir des valeurs en double pour id et montant colonne

mysql> select id, amount,count(*) from dup_orders group by id,amount ayant count(id)>1 and count(amount)>1;+------+------ --+----------+| identifiant | montant | compte(*) |+------+--------+----------+| 2 | 350 | 2 |+------+--------+----------+

Heureusement, vous pouvez maintenant obtenir facilement des enregistrements en double dans MySQL.

Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !