Maison  >  Article  >  base de données  >  requête mysql pour les enregistrements en double

requête mysql pour les enregistrements en double

WBOY
WBOYoriginal
2023-05-23 10:24:072832parcourir

Dans la base de données MySQL, la recherche d'enregistrements en double est une exigence très courante. Cet article explique comment utiliser SQL pour rechercher des enregistrements en double.

De manière générale, vous pouvez utiliser les instructions GROUP BY et HAVING pour interroger les enregistrements en double dans MySQL. Présentons-les en détail ci-dessous.

1. Utilisez GROUP BY et HAVING

L'utilisation des instructions GROUP BY et HAVING peut facilement interroger les enregistrements en double. La syntaxe spécifique est la suivante :

SELECT column_name1, column_name2, ... column_nameN, COUNT(*)
FROM table_name
GROUP BY column_name1, column_name2, ... column_nameN
HAVING COUNT(*) > 1;

où, column_name1column_name2column_nameN 是你要查询的字段名称,table_name est le nom de la table que vous souhaitez interroger, et COUNT(. ) est Compter le nombre de valeurs en double. HAVING COUNT() > 1 signifie interroger uniquement les enregistrements avec des valeurs en double supérieures à une fois.

Par exemple, nous avons une table nommée étudiants, qui contient deux champs id et name. Nous voulons maintenant interroger tous les noms en double. Nous pouvons utiliser l'instruction SQL suivante :

SELECT name, COUNT(*)
FROM students
GROUP BY name
HAVING COUNT(*) > 1;

L'instruction SQL ci-dessus interrogera tous les noms en double et. leur époque.

2. Utilisez des sous-requêtes et des tables temporaires

L'utilisation de sous-requêtes et de tables temporaires peut également rechercher des enregistrements en double. Voici l'instruction SQL spécifique :

SELECT id, name
FROM students
WHERE name IN (
  SELECT name
  FROM students
  GROUP BY name
  HAVING COUNT(*) > 1
);

L'instruction SQL ci-dessus interrogera tous les enregistrements en double, où l'identifiant et le nom. sont respectivement les noms des champs à interroger, étudiants est le nom de la table à interroger et WHERE nom IN (...) représente tous les noms répétés trouvés dans la sous-requête.

Résumé :

Cet article présente la méthode d'utilisation des instructions GROUP BY et HAVING ainsi que des sous-requêtes et des tables temporaires pour interroger les enregistrements en double. Les lecteurs peuvent choisir différentes méthodes en fonction de la situation réelle pour mieux répondre à leurs besoins. De plus, dans les applications pratiques, afin d'améliorer les performances, vous devez également faire attention à l'utilisation des champs de requête et des index.

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!

Déclaration:
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