La différence entre les clauses HAVING et WHERE dans l'instruction SQL SELECT
Dans une instruction SQL SELECT, les clauses HAVING et WHERE servent à des fins différentes dans le filtrage des données. Comprendre leur utilisation est essentiel pour obtenir des résultats de requête précis.
Clause AVOIR
La clause HAVING est appliquée après l'agrégation à l'aide de la clause GROUP BY. Il filtre les lignes groupées en fonction d'une condition appliquée à la valeur agrégée. Par exemple :
<code class="language-sql">SELECT City, COUNT(1) AS CNT FROM Address WHERE State = 'MA' GROUP BY City HAVING COUNT(1) > 5</code>
Cette requête renvoie un tableau contenant les villes du Massachusetts et leur nombre d'adresses (plus de 5).
Clause WHERE
En revanche, la clause WHERE filtre les lignes avant l'agrégation. Il évalue la condition sur des lignes individuelles et sélectionne uniquement les lignes qui satisfont à la condition. Par exemple :
<code class="language-sql">SELECT City, COUNT(1) AS CNT FROM Address WHERE State = 'MA' AND City LIKE '%ton' GROUP BY City</code>
Cette requête renvoie un tableau contenant le nombre de villes du Massachusetts (dont les noms se terminent par « ton ») et leurs adresses.
Différences clés
La principale différence entre HAVING et WHERE réside dans le moment où ils sont appliqués :
En tirant parti de cette distinction, les développeurs peuvent manipuler et filtrer avec précision les données dans les instructions SQL SELECT pour récupérer les résultats souhaités.
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!