亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mysql中的where和having子句的區別

mysql中的where和having子句的區別

拉風的咖菲貓 2019-04-09 09:04:41
mysql中的where和having子句的區別
查看完整描述

3 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

區別1
1、where是判斷數據從磁盤讀入內存的時候
2、having是判斷分組統計之前的所有條件

區別2
1、having子句中可以使用字段別名,而where不能使用

區別3
1、having能夠使用統計函數,但是where不能使用

先分組,再判斷

查看完整回答
反對 回復 2019-04-10
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

1. 優先級方面:
where優先級高,having低。
優先級從高到低順序:where,group by, order by ,having limit。
如果多個字句存在,先查前一個條件,再從查詢結果中找符合下一個條件的結果,層層篩選查詢,得到查詢結果。
2. 用法:
where 最常用,后面跟上條件
having一般與group by合用,對前面的查詢結果再次篩選。

查看完整回答
反對 回復 2019-04-10
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

having 和where 都是用來篩選用的
having 是篩選組 而where是篩選記錄

他們有各自的區別

1》當分組篩選的時候 用having

2》其它情況用where
-----------------------------------------------------
用having就一定要和group by連用,
用group by不一有having (它只是一個篩選條件用的)
-------------------------------------------------------
例子
表結構
部門編號 姓名 工資
1 aa 2000
2 bb 1200
1 cc 2100
2 dd 1800
1 ee 2100
3 ff 8000
2 gg 2200
3 hh 4500

查詢有多個員工的工資不低于2000的部門編號
(就是說如果一個部門的員工大于2000的人數有兩個或兩個以上就查詢出來)

select 部門編號,count(*) from 員工信息表
where 工資>=2000
group by 部門編號
having count(*)>1

where 針對每一條記錄篩選
而 having 對同一個部門的分組
count(*)>1 計算多于兩個的部門

查詢結果為

1 3
3 2



查看完整回答
反對 回復 2019-04-10
  • 3 回答
  • 0 關注
  • 589 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號