mysql中having語句與where語句的用法與區別 我們在寫sql語句的時候,經常會使用where語句,很少會用到having,其實在mysql中having子句也是設定條件的語句與where有相似之處但也有區別。having子句在查詢過程中慢於聚合語句(sum,min,max,avg,count).而where子句在查詢過程中則快於聚合語句(sum,min,max,avg,count)。 簡單說來:
where子句: select sum(num) as rmb from order where id>10 //先查詢出id大於10的記錄才能進行聚合語句 having子句: select reportsto as manager, count(*) as reports from employees group by reportsto having count(*) > 4
以test庫為例.having條件表達示為聚合語句。肯定的說having子句查詢過程慢於聚合語句。 再換句說話說把上面的having換成where則會出錯。統計分組數據時用到聚合語句。 對分組數據再次判斷時要用having。如果不用這些關系就不存在使用having。直接使用where就行了。 having就是來彌補where在分組數據判斷時的不足。因為where要快於聚合語句。