Maison > base de données > tutoriel mysql > le corps du texte

Comprendre la différence entre où et avoir des instructions SQL

怪我咯
Libérer: 2017-03-31 10:07:14
original
2130 Les gens l'ont consulté

HAVING d'abord groupes puis filtre les enregistrements, tandis que WHERE filtre les enregistrements avant de agréger . C'est-à-dire qu'il agit avant la clause GROUP BY et la clause HAVING et que la clause HAVING filtre les enregistrements du groupe après l'agrégation ; Les
objets utilisés par sont différents. La clause WHERE fonctionne sur les tables et les vues, et la clause HAVING fonctionne sur les groupes. WHERE sélectionne les lignes d'entrée avant les calculs de regroupement et d'agrégation (il contrôle donc quelles lignes entrent dans le calcul d'agrégation), tandis que HAVING sélectionne les lignes groupées après le regroupement et l'agrégation. Par conséquent, la clause WHERE ne peut pas contenir une fonction d'agrégation car cela n'a aucun sens d'essayer d'utiliser une fonction d'agrégation pour déterminer quelles lignes sont entrées dans l'opération d'agrégation. En revanche, la clause HAVING contient toujours des fonctions d'agrégation. (À proprement parler, vous pourriez écrire la clause HAVING sans utiliser l'agrégation, mais ce serait une perte de temps. La même condition pourrait être utilisée plus efficacement à l'étape WHERE.) Par exemple :
select * from tablenamewhere id > ; 1; et
sélectionner * à partir du nom de table ayant l'identifiant > 1
Il n'y a aucune différence entre les résultats de la requête. Il n'est pas recommandé d'utiliser have
pour résumer en deux phrases :
L'instruction WHERE précède l'instruction GROUPBY ; SQL calculera l'instruction WHERE avant le regroupement.
L'instruction HAVING vient après l'instruction GROUPBY ; SQL calculera l'instruction HAVING après le regroupement.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!