Maison  >  Article  >  base de données  >  La relation entre où et avoir dans MySQL

La relation entre où et avoir dans MySQL

下次还敢
下次还敢original
2024-05-01 20:42:35703parcourir

La clause WHERE filtre les données au niveau de la ligne, tandis que la clause HAVING filtre les données au niveau du groupe. La clause WHERE est appliquée après le mot clé FROM, tandis que la clause HAVING est appliquée après le mot clé GROUP BY.

La relation entre où et avoir dans MySQL

Relation entre les clauses WHERE et HAVING dans MySQL

WHERE et HAVING sont deux clauses utilisées pour filtrer les ensembles de données MySQL. La différence entre eux est que la clause WHERE est utilisée pour filtrer les lignes, tandis que la clause HAVING est utilisée pour filtrer les groupes.

Clause WHERE

La clause WHERE est écrite après le mot-clé FROM et est utilisée pour filtrer les lignes en fonction de conditions données. Il ne prend en compte que la valeur de chaque ligne, pas les autres lignes du groupe. La clause WHERE peut être utilisée pour filtrer les lignes qui ne remplissent pas les conditions.

Clause HAVING

La clause HAVING est écrite après le mot-clé GROUP BY et est utilisée pour filtrer le groupe en fonction des données du groupe. Il considère les valeurs agrégées du groupe et filtre le groupe en fonction de ces valeurs. La clause HAVING peut être utilisée pour filtrer les groupes qui ne répondent pas aux critères.

Relations

Les clauses WHERE et HAVING sont principalement utilisées pour résoudre différents problèmes :

  • La clause WHERE est utilisée pour filtrer les données au niveau des lignes.
  • La clause HAVING est utilisée pour filtrer les données au niveau du groupe.

Exemple

L'exemple suivant montre la différence entre les clauses WHERE et HAVING :

<code class="sql">SELECT *
FROM sales
WHERE product_id = 1;  -- WHERE 过滤行</code>

Cette requête renverra tous les enregistrements de ventes avec l'ID de produit 1.

<code class="sql">SELECT product_id, SUM(quantity) AS total_quantity
FROM sales
GROUP BY product_id
HAVING total_quantity > 100;  -- HAVING 过滤组</code>

Cette requête renverra tous les groupes de produits dont l'ID produit et le total de leurs ventes sont supérieurs à 100.

Il est important de comprendre la différence entre les clauses WHERE et HAVING afin de filtrer efficacement les données dans les requêtes 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!

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