相同点
where和having在作用上基本相同,都是筛选数据。
要了解MySQL中where和having的区别,我们需要知道MySQL的执行顺序:
form→where→where→group by→having→select→order by→limit
从上面可以看出,where的执行是在group by 前,having的执行是在group by 后,所以可以看出:
having相比where,它可以对group by后及分组后的数据,进行筛选,而一般在分组的时候,我们会使用聚合函数(SUM,MIN,MAX,AVG,COUNT),having也能对聚合函数的值进行筛选。
总结:
所以having相比where多了对分组后数据进行筛选的功能,并且能对聚合函数的值进行筛选。