Récupérer efficacement les valeurs de colonne correspondantes dans MySQL
Les requêtes de base de données nécessitent souvent de récupérer des lignes en fonction de correspondances de valeurs de colonne spécifiques. Cette tâche devient plus complexe lorsqu'il s'agit de grandes tables. Cet exemple démontre une méthode efficace utilisant les fonctions d'agrégation de MySQL et la clause HAVING
.
Considérons un exemple de tableau :
<code>ID | Score ----- 1 | 95 2 | 100 3 | 88 4 | 100 5 | 73</code>
Le but est de trouver des scores communs à l'ID 2 et à l'ID 4. Le résultat attendu est 100.
Les capacités d'agrégation de MySQL offrent une solution élégante :
<code class="language-sql">SELECT score FROM t GROUP BY score HAVING SUM(id = 2) > 0 AND SUM(id = 4) > 0;</code>
Cette requête regroupe les données par score
. La clause HAVING
utilise ensuite des fonctions d'agrégation pour vérifier la présence de l'ID 2 et de l'ID 4 dans chaque groupe. SUM(id = 2) > 0
compte les occurrences de l'ID 2 et SUM(id = 4) > 0
compte les occurrences de l'ID 4. Seuls les scores où les deux comptes sont supérieurs à zéro sont renvoyés. Cela garantit que seuls les scores associés aux deux identifiants sont inclus dans le résultat.
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!