91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決SQL語句中AND和OR執行順序遇到的問題

發布時間:2021-07-29 09:47:17 來源:億速云 閱讀:164 作者:小新 欄目:MySQL數據庫

這篇文章將為大家詳細講解有關如何解決SQL語句中AND和OR執行順序遇到的問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

場景

1、有一張學生表Student,表字段包括Id(用戶主鍵)、Name(用戶名)、Grade(年級)、Class(班級)、Sex(性別)。如下:

表結構

2、在表中導入十條測試數據,如下:

表數據

3、現需要查詢出性別為女的1年級女學生,或者性別為女的2班級女學生。SQL語句如下:
    select * from student where sex='女' and grade=1 or class=2
但是該sql查詢出來的結果并不符合要求,執行結果如下:

執行結果

執行的結果中還查詢出了班級為2的男學生,顯然結果是不正確的。

4、修改下SQL語句,添加上括號。如下:

select * from student where sex='女' and (grade=1 or class=2)

該sql查詢出來的結果符合要求

分析

從上面的場景中,問題的關鍵就在于AND和OR的執行順序問題。
查閱資料,關系型運算符優先級高到低為:NOT >AND >OR
如果where 后面有OR條件的話,則OR自動會把左右的查詢條件分開。
就如上面場景中的第一條語句,他的查詢條件分為兩部分(或):

1、sex='女' and grade=1
2、 class=2

這也就是查詢出1年級的女學生,2班級的學生。不符合最初查詢的要求。
那么解決辦法就是使用括號區分執行的順序
就如上面場景的第二條語句,查詢條件分為兩部分(并):

1、 sex='女' 
2、 (grade=1 or class=2)

關于“如何解決SQL語句中AND和OR執行順序遇到的問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

包头市| 墨竹工卡县| 神木县| 祁东县| 东辽县| 山东| 南充市| 河曲县| 普格县| 丰原市| 桃源县| 库车县| 汤原县| 临洮县| 教育| 武平县| 蓝山县| 都江堰市| 航空| 陇川县| 聂荣县| 水城县| 随州市| 林周县| 泸州市| 建瓯市| 二连浩特市| 澜沧| 株洲市| 利津县| 叙永县| 修水县| 武川县| 汉中市| 太湖县| 江山市| 千阳县| 海兴县| 苍溪县| 镇巴县| 东山县|