時(shí)間:2024-02-05 11:03作者:下載吧人氣:35
要說having,首先要說一下where,這個(gè)語句非常常用且重要。
在我們查詢數(shù)據(jù)庫時(shí),不可能每一次都把所有數(shù)據(jù)拿出來(上億的數(shù)據(jù)量,啥服務(wù)器也扛不住啊)
通常都是取出前10條,按時(shí)間取前30條,按名稱、年齡、金額等數(shù)據(jù)表中有的字段的值進(jìn)行篩選;也有可能篩選后數(shù)據(jù)還是比較多,會(huì)進(jìn)行一個(gè)分頁處理。
這里where的作用就必不可少了!只要是表中存在的字段值類型,寫成布爾值結(jié)果的表達(dá)式即可,多條件與、或、非運(yùn)算都可以。
可以說,項(xiàng)目中用到的SQL語句,99.9%都包含Where語句的,實(shí)用程度可想而知。
但是它卻有無法實(shí)現(xiàn)的一些功能,這時(shí),having就要出場了~
SQL語句中,如果需要計(jì)算總數(shù)、累加、求均值等聚合運(yùn)算,并篩選出總數(shù)未達(dá)到或達(dá)到的部分集合
Where語句無法替代的,比如
在Where 中使用 Count時(shí),異常報(bào)錯(cuò)如下
圖片內(nèi)容翻譯: Where中不能出現(xiàn)聚合運(yùn)算,只能寫到having或者select中
因此,可以這么說,having可以做到where做不到的效果
通常有having的地方都有聚合運(yùn)算,
網(wǎng)友評(píng)論