Maison >base de données >tutoriel mysql >Comment trouver des valeurs de score en double sur des identifiants spécifiques dans MySQL ?

Comment trouver des valeurs de score en double sur des identifiants spécifiques dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-22 20:56:10356parcourir

How to Find Duplicate Score Values Across Specific IDs in MySQL?

Astuces pour récupérer les valeurs de colonnes en double dans MySQL

Dans une base de données MySQL, vous devrez peut-être récupérer les lignes qui partagent la même valeur dans une colonne spécifique. Considérez le tableau suivant, où la colonne « Score » contient des valeurs associées à différents « ID » :

ID 分数
1 95
2 100
3 88
4 100
5 73

Supposons que vous souhaitiez récupérer les scores qui apparaissent sur deux lignes avec "ID" égal à 2 et 4.

Solution :

Pour y parvenir en utilisant MySQL, vous pouvez utiliser la requête suivante :

<code class="language-sql">SELECT score
FROM t
GROUP BY score
HAVING COUNT(*) > 1 AND SUM(CASE WHEN id = 2 THEN 1 ELSE 0 END) > 0 AND SUM(CASE WHEN id = 4 THEN 1 ELSE 0 END) > 0;</code>

Cette requête effectue les étapes suivantes :

  1. GROUP BY : Il regroupe les lignes en fonction de la colonne "Score".
  2. *Count (COUNT()) :** Il compte le nombre de lignes dans chaque groupe, garantissant que seuls les scores en double sont renvoyés.
  3. Compte conditionnel (SUM(CASE WHEN ... END)) : Il compte le nombre de lignes avec l'ID 2 et l'ID 4 dans chaque groupe respectivement.
  4. Clause HAVING : La clause HAVING garantit que seuls les scores avec un nombre de scores supérieur à 1 sont renvoyés et que les scores avec l'ID 2 et l'ID 4 sont tous deux supérieurs à 0.

Dans ce cas le résultat serait :

<code>分数
100</code>

Cette requête récupère efficacement les valeurs de score qui apparaissent dans les deux lignes avec "ID" égal à 2 et 4. La requête améliorée exprime plus clairement les conditions de filtrage et évite les erreurs logiques potentielles.

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