Recherche MySQL multi-lignes de même valeur : guide complet
Dans les bases de données relationnelles telles que MySQL, l'identification des lignes et des colonnes avec des valeurs de colonne correspondantes est souvent une tâche critique. Cet article explique comment renvoyer des colonnes partageant la même valeur dans une colonne spécifique.
Considérez le tableau de données suivant :
ID | Score |
---|---|
1 | 95 |
2 | 100 |
3 | 88 |
4 | 100 |
5 | 73 |
Pour récupérer tous les scores qui apparaissent à la fois dans l'ID 2 et l'ID 4, une solution consiste à utiliser l'agrégation et une clause HAVING :
<code class="language-sql">SELECT Score FROM t GROUP BY Score HAVING COUNT(CASE WHEN ID = 2 THEN 1 END) > 0 AND COUNT(CASE WHEN ID = 4 THEN 1 END) > 0;</code>
Cette requête compte les lignes ID 2 et ID 4 pour chaque score distinct. Ensuite, renvoyez la fraction où ID 2 et ID 4 ont des comptes supérieurs à zéro comme résultat souhaité.
Instructions :
GROUP BY Score
Agrège les lignes par colonne Score. HAVING COUNT(CASE WHEN ID = 2 THEN 1 END) > 0
Assurez-vous d'inclure uniquement les scores pour lesquels l'ID 2 existe. HAVING COUNT(CASE WHEN ID = 4 THEN 1 END) > 0
Filtrer davantage les résultats pour inclure les scores où l'ID 4 est également présent. En combinant ces conditions dans la clause HAVING, la requête identifie efficacement les scores qui apparaissent à la fois dans l'ID 2 et l'ID 4. Cette technique peut être étendue à n'importe quel nombre d'ID ou de colonnes, fournissant une solution générale pour trouver des valeurs correspondantes dans MySQL.
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!