mysql having和where_淺談Mysql中where和having的區別

一、誤區:

不要錯誤的認為having和group by 必須配合使用.

二、where和having用法解析:

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

select goods_price,goods_name from goods where goods_price > 100

select goods_price,goods_name from goods having goods_price > 100

解釋:上面的having可以用的前提是我已經篩選出了goods_price字段,在這種情況下和where的效果是等效的。

但是如果沒有select goods_price 就會報錯!!因為having是從前篩選的字段再篩選,而where是從數據表中的字段直接進行的篩選的。

因此可以看到where 是針對數據庫文件的發揮作用,而having是針對結果集發揮作用。

其實第二個sql語句等價于如下語句更好理解:

select goods_price,goods_name from goods where 1? having goods_price > 100

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

select goods_name,goods_number from goods where goods_price > 100

select goods_name,goods_number from goods having goods_price > 100

解釋:第二個sql語句報錯,這是因為前面并沒有篩選goods_price 造成的,更能看出having是針對結果集發揮作用。

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

查詢每種category_id商品的價格平均值,獲取平均價格大于1000元的商品信息。

select category_id , avg(goods_price) as ag from goods group by category_id having ag > 1000

select category_id , avg(goods_price) as ag from goods where ag>1000 group by category_id

解釋:第二個sql語句報錯,這是因為from goods 這張數據表里面沒有ag這個字段。

三、綜述:

where 后面要跟的是數據表里的字段,where針對數據庫文件的發揮作用。

而having只是根據前面查詢出來的結果集再次進行查詢,因此having是針對結果集發揮作用。

四、where和having的綜合運用案例:

a0860ed030f5db297bdb357eff9d8db7.png

查詢2門或2門以上不及格同學的平均成績。

SELECT st_name,sum(score<60)? as k,avg(score) FROM tbl_score group by st_name having k>=2;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271364.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271364.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271364.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ds證據理論python實現_ALI模型理論以及Python實現

https://openreview.net/forum?idB1ElR4cgg模型結構和明天要發BiGAN模型一模一樣&#xff0c;但是兩篇論文的作者都是獨立完成自己的內容的。而且從寫作的風格來看emmm完全不一樣ALI跟BiGAN的設計一模一樣&#xff0c;但是就是沒有加Latent regressor。雖然在ALI中也簡要地談到…

IO操作總結

1&#xff0c;讀取文件將文件轉換為二進制流 1 InputStream in new FileInputStream("C:/test.png"); 2 byte[] photo new byte[in.available()]; 3 in.read(photo); 4 in.close(); View Code2&#xff0c;寫文件 1 Outpu…

計算機網絡基礎:網絡標準相關知識介紹

1、常見的制定網絡標準的機構 國際標準化組織、國際電信聯盟、電子工業協會、電氣和電子工程協會、因特網活動委員會 2、常見的網絡標準 2.1 電信標準 國際電信聯盟&#xff08;ITU&#xff09;1947年成為聯合國的一個組織&#xff0c;包括ITU-R、ITU-T、ITU-D組成。 ITU-R:無線…

Long類型轉為String類型

如果java返回給前端的字段有Long類型的&#xff0c;比如主鍵id&#xff0c;那么就要把這個Long類型轉為String類型才可以&#xff0c;不然前端拿到這個字段再傳回給你后端用的時候會導致精度缺失&#xff0c;也就是這個字段的值會改變&#xff0c;原因是java的Long類型是18位&a…

1-5Tomcat 目錄結構 和 web項目目錄結構

對應我的安裝路徑&#xff1a; web項目目錄結構 轉載于:https://www.cnblogs.com/huiziz/p/5671612.html

execjs執行js出現window對象未定義時的解決_10個常見的JS語言錯誤總匯

1、 Uncaught TypeError: Cannot Read Property這是 JavaScript 開發人員最常遇到的錯誤。當你讀取一個屬性或調用一個未定義對象的方法時&#xff0c;Chrome 中就會報出這樣的錯誤。導致這個錯誤發生的原因有很多&#xff0c;常見的一種情況是在渲染 UI 組件時&#xff0c;不正…

安卓logcat工具apk_backdoorapk 安卓APK后門捆綁腳本

項目地址https://github.com/dana-at-cp/backdoor-apk項目介紹backdoor-apk是一個bash寫的腳本&#xff0c;通過msfvenom生成一個android的payload&#xff0c;然后再使用apktools將payload捆綁到正常的apk文件中。使用方法rootkali:~/Android/evol-lab/BaiduBrowserRat# ./bac…

java8 supplier 接口

Supplier 接口 Supplier 接口是一個供給型的接口&#xff0c;其實&#xff0c;說白了就是一個容器&#xff0c;可以用來存儲數據&#xff0c;然后可以供其他方法使用的這么一個接口 *** Supplier接口測試&#xff0c;supplier相當一個容器或者變量&#xff0c;可以存儲值*/Tes…

mantis apache mysql_軟件測試(軟件安裝:php+mysql+apache+mantis過程遇到的問題以及解決方法)...

實驗環境&#xff1a; Windows 7 64位操作系統瀏覽器版本: Mozilla Firefox 41.0.0.5378一&#xff0e;PHP的安裝① 版本: php-5.4.45-Win32-VC9-x86安裝步驟&#xff1a;安裝將PHP安裝到 D:\PHP下(目錄可以自行更改)配置找到PHP目錄里的類似 php.ini-dist &#xff0c;…

c#程序中使用like“查詢access數據庫查詢為空的問題

今天&#xff0c;在開發的過程中發現了一個特別奇怪的問題&#xff1a;access中like查詢時候&#xff0c;在Access數據庫中執行&#xff0c;發現可以查詢出結果&#xff0c;這是在數據庫上執行&#xff0c;select * from KPProj where KpName like *測試*&#xff0c;但是同樣的…

html登錄界面_使用數據庫制作一套注冊登錄系統

經過了那么多個星期的學習&#xff0c;終于到了使用數據庫的階段了&#xff0c;最基本的也就是制作注冊登錄與數據庫連接。首先要制作一個注冊窗口先是html界面<效果如圖&#xff1a;&#xff08;樣子怎么樣不重要&#xff0c;重要的是測試&#xff09;這主要是將form數值發…

java8中Predicate用法

Predicate是個斷言式接口其參數是<T,boolean>&#xff0c;也就是給一個參數T&#xff0c;返回boolean類型的結果。跟Function一樣&#xff0c;Predicate的具體實現也是根據傳入的lambda表達式來決定的。 Testpublic void predicate(){/*** Predicate謂詞測試&#xff0c…

計算機網絡基礎:局域網協議相關知識

1、局域網協議的概念 局域網絡中的通信被限制在中等規模的地理范圍內&#xff0c;比如一所學校&#xff1b;能夠使用具體中等或較高數據速率的物理信道&#xff0c;并且具有較低的誤碼率&#xff1b;局域網絡是專用的&#xff0c; 由單一組織機構所使用。 局域網特點&#xff1…

mysql數據庫交叉連接_【數據庫】內連接、外連接、交叉連接

基本概念關系模型(表)關系模型由關系數據結構、關系操作集合和關系完整性約束三部分組成。關系模型的數據結構非常簡單&#xff1a;一張扁平的二維表。元組&#xff1a;二維表中的具有相同數據類型的某一行屬性&#xff1a;二維表中的具有相同數據類型的某一列笛卡爾積(Cartesi…

C#實現GDI+基本圖的縮放、拖拽、移動

C#實現GDI基本圖的縮放、拖拽、移動示例代碼如下&#xff1a; using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms; namespace ResizableControls{ public …

網絡資產管理系統_固定資產管理系統的三種網絡架構方式

隨著互聯網技術的發展和信息技術的廣泛使用&#xff0c;固定資產管理系統在各行業的應用越來越普及&#xff0c;固定資產管理系統作為當今主流的企業固定資產信息化管理模式&#xff0c;能夠對企業固定資產進行有效管理并提升企業的管理水平。對于固定資產管理系統的網絡結構方…

計算機網絡基礎:廣域網協議相關知識筆記

廣域網常指覆蓋范圍廣、數據傳輸速率較低&#xff0c;以數據通信為目的的數據通信網。廣域網主要是通過專用的或交換式的連接把計算機連接起來。廣域網傳輸協議主要包括&#xff1a;PPP&#xff08;點對點協議&#xff09;、DDN、ISDN&#xff08;綜合業務數字網&#xff09;、…

mysql check table_修復MySQL的MyISAM表命令check table用法

MyISAM如果損壞了修復方法是比較簡單了我們只要使用check table命令就可以了&#xff0c;下面我們來看一篇關于修復MySQL的MyISAM表命令check table用法&#xff0c;具體如下所示。MySQL日志文件里出現以下錯誤&#xff0c;MySQL表通常不會發生crash情況&#xff0c;一般是在更…

python字典append_python中字典重復賦值,append到list中引發的異常

今天遇到了一個關于python 字典的誤用。先上代碼&#xff1a; data [{id: 1, name: 管理員, role: admin, desc: 系統管理員, acl: None}, {id: 2, name: 研發, role: dev, desc: 研發人員, acl: None}, {id: 3, name: 測試, role: qa, desc: 測試人員, acl: None}, {id: 4, n…

計算機網絡基礎:TCP/IP協議相關知識筆記?

1、TCP/IP特性邏輯編址&#xff1a;每一塊網卡會在出廠時由廠家分配了唯一的永久性物理地址。針對Internet&#xff0c;會為每臺連入因特網的計算機分配一個邏輯地址也就是IP地址。路由選擇&#xff1a;專門用于定義路由器如何選擇網絡路徑的協議&#xff0c;即IP數據包的路由選…