區別1
where是從數據表中的字段直接進行的篩選的。
having是從 前面篩選的字段再篩選
eg: select goods_price,goods_name from goods having goods_price > 100
等價於
select goods_price,goods_name from goods where goods_price > 100
select goods_name,goods_number from goods having goods_price > 100
// 報錯!!!因為前面並沒有篩選出 goods_price 字段
區別2
having子句中可以使用字段別名,而where不能使用
區別3
having能夠使用統計函數,先分組,再判斷(having),但是where不能使用