国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

正確理解MySQL中的where和having的區(qū)別

2019-11-08 20:59:54
字體:
供稿:網(wǎng)友

以前在學(xué)校里學(xué)習(xí)過SQLserver數(shù)據(jù)庫,發(fā)現(xiàn)學(xué)習(xí)的都是皮毛,今天以正確的姿態(tài)談一下MySQL中where和having的區(qū)別。


誤區(qū):不要錯(cuò)誤的認(rèn)為having和group by 必須配合使用。

下面以一個(gè)例子來具體的講解:

1. where和having都可以使用的場景

select goods_PRice,goods_name from sw_goods where goods_price > 100 select goods_price,goods_name from sw_goods having goods_price > 100

解釋:上面的having可以用的前提是我已經(jīng)篩選出了goods_price字段,在這種情況下和where的效果是等效的,但是如果我沒有select goods_price 就會(huì)報(bào)錯(cuò)!!因?yàn)閔aving是從前篩選的字段再篩選,而where是從數(shù)據(jù)表中的字段直接進(jìn)行的篩選的。

2. 只可以用where,不可以用having的情況

select goods_name,goods_number from sw_goods where goods_price > 100 select goods_name,goods_number from sw_goods having goods_price > 100 //報(bào)錯(cuò)!!!因?yàn)榍懊娌]有篩選出goods_price 字段

3. 只可以用having,不可以用where情況

查詢每種goods_category_id商品的價(jià)格平均值,獲取平均價(jià)格大于1000元的商品信息

select goods_category_id , avg(goods_price) as ag from sw_goods group by goods_category having ag > 1000 select goods_category_id , avg(goods_price) as ag from sw_goods where ag>1000 group by goods_category //報(bào)錯(cuò)!!因?yàn)閒rom sw_goods 這張數(shù)據(jù)表里面沒有ag這個(gè)字段

注意:where 后面要跟的是數(shù)據(jù)表里的字段,如果我把a(bǔ)g換成avg(goods_price)也是錯(cuò)誤的!因?yàn)楸砝餂]有該字段。而having只是根據(jù)前面查詢出來的是什么就可以后面接什么。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 海林市| 黔南| 金川县| 霞浦县| 娱乐| 仁化县| 招远市| 中宁县| 焦作市| 礼泉县| 鄂托克旗| 莱芜市| 荆州市| 正安县| 宁明县| 施秉县| 寿光市| 依安县| 新闻| 施秉县| 阿鲁科尔沁旗| 班玛县| 井冈山市| 湘乡市| 增城市| 河西区| 株洲县| 武强县| 都昌县| 宣恩县| 犍为县| 阳城县| 宝清县| 罗源县| 奉新县| 英山县| 轮台县| 高青县| 三台县| 个旧市| 香港|