国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 海林市| 犍为县| 衡东县| 浏阳市| 涟水县| 宜丰县| 牡丹江市| 桐城市| 宝山区| 武宁县| 兴仁县| 于田县| 安平县| 乐平市| 龙里县| 滨海县| 双鸭山市| 延长县| 嘉兴市| 安龙县| 玛曲县| 连平县| 顺平县| 齐齐哈尔市| 镇赉县| 峨边| 南安市| 德阳市| 治多县| 吉林省| 怀远县| 当雄县| 肃南| 肇源县| 玉田县| 揭西县| 康马县| 许昌市| 湄潭县| 莱阳市| 汽车|