欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于SQL語(yǔ)句中的AND和OR執(zhí)行順序遇到的問(wèn)題

 更新時(shí)間:2019年05月22日 09:55:40   作者:alwayssmile21  
在SQL語(yǔ)句中的AND和OR執(zhí)行順序中我們經(jīng)常會(huì)遇到一些問(wèn)題,下面有簡(jiǎn)單的解決方法,小編來(lái)和大家一起來(lái)看看

問(wèn)題

昨天在寫(xiě)數(shù)據(jù)庫(kù)SQL的時(shí)候遇到一個(gè)問(wèn)題。問(wèn)題的根結(jié)在SQL語(yǔ)句的AND和OR關(guān)鍵字的執(zhí)行優(yōu)先級(jí)問(wèn)題。下面就針對(duì)這個(gè)問(wèn)題進(jìn)行一下測(cè)試。

場(chǎng)景

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

表結(jié)構(gòu)

2、在表中導(dǎo)入十條測(cè)試數(shù)據(jù),如下:

表數(shù)據(jù)

3、現(xiàn)需要查詢出性別為女的1年級(jí)女學(xué)生,或者性別為女的2班級(jí)女學(xué)生。SQL語(yǔ)句如下:
    select * from student where sex='女' and grade=1 or class=2
但是該sql查詢出來(lái)的結(jié)果并不符合要求,執(zhí)行結(jié)果如下:

執(zhí)行結(jié)果

執(zhí)行的結(jié)果中還查詢出了班級(jí)為2的男學(xué)生,顯然結(jié)果是不正確的。

4、修改下SQL語(yǔ)句,添加上括號(hào)。如下:

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

該sql查詢出來(lái)的結(jié)果符合要求

分析

從上面的場(chǎng)景中,問(wèn)題的關(guān)鍵就在于AND和OR的執(zhí)行順序問(wèn)題。
查閱資料,關(guān)系型運(yùn)算符優(yōu)先級(jí)高到低為:NOT >AND >OR
如果where 后面有OR條件的話,則OR自動(dòng)會(huì)把左右的查詢條件分開(kāi)。
就如上面場(chǎng)景中的第一條語(yǔ)句,他的查詢條件分為兩部分(或):

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

這也就是查詢出1年級(jí)的女學(xué)生,2班級(jí)的學(xué)生。不符合最初查詢的要求。
那么解決辦法就是使用括號(hào)區(qū)分執(zhí)行的順序
就如上面場(chǎng)景的第二條語(yǔ)句,查詢條件分為兩部分(并):

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

相關(guān)文章

  • Mysql去重的幾種方式分步講解

    Mysql去重的幾種方式分步講解

    SQL去重是數(shù)據(jù)分析工作中比較常見(jiàn)的一個(gè)場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于SQL去重的3種實(shí)用方法的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 解決mysql數(shù)據(jù)庫(kù)設(shè)置遠(yuǎn)程連接權(quán)限執(zhí)行g(shù)rant all privileges on *.* to 'root'@'%' identified by '密碼' with grant optio報(bào)錯(cuò)

    解決mysql數(shù)據(jù)庫(kù)設(shè)置遠(yuǎn)程連接權(quán)限執(zhí)行g(shù)rant all privileges on&n

    這篇文章主要介紹了解決mysql數(shù)據(jù)庫(kù)設(shè)置遠(yuǎn)程連接權(quán)限執(zhí)行g(shù)rant all privileges on *.* to 'root'@'%' identified by '密碼' with grant optio報(bào)錯(cuò),通過(guò)本文給大家分享問(wèn)題原因解析及解決方法,需要的朋友可以參考下
    2022-11-11
  • 如何修改Mysql中g(shù)roup_concat的長(zhǎng)度限制

    如何修改Mysql中g(shù)roup_concat的長(zhǎng)度限制

    在mysql中,有個(gè)函數(shù)叫“group_concat”,平常使用可能發(fā)現(xiàn)不了問(wèn)題,在處理大數(shù)據(jù)的時(shí)候,會(huì)發(fā)現(xiàn)內(nèi)容被截取了。怎么解決這一問(wèn)題呢,下面腳本之家小編給大家?guī)?lái)了Mysql中g(shù)roup_concat的長(zhǎng)度限制問(wèn)題,感興趣的朋友一起看看吧
    2018-08-08
  • 關(guān)于MySQL?onlinedb數(shù)據(jù)庫(kù)的一些查詢語(yǔ)句大全

    關(guān)于MySQL?onlinedb數(shù)據(jù)庫(kù)的一些查詢語(yǔ)句大全

    這篇文章主要給大家介紹了關(guān)于MySQL?onlinedb數(shù)據(jù)庫(kù)的一些查詢語(yǔ)句,文中通過(guò)代碼實(shí)例介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-12-12
  • Mysql存在則修改不存在則新增的兩種實(shí)現(xiàn)方法實(shí)例

    Mysql存在則修改不存在則新增的兩種實(shí)現(xiàn)方法實(shí)例

    mysql語(yǔ)法支持如果數(shù)據(jù)存在則更新,不存在則插入,下面這篇文章主要給大家介紹了關(guān)于Mysql存在則修改不存在則新增的兩種實(shí)現(xiàn)方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 經(jīng)典mysql連接查詢例題

    經(jīng)典mysql連接查詢例題

    本文通過(guò)一個(gè)有趣的例子向我們介紹了mysql連接查詢,采用了子查詢和連接查詢混合和多次連接查詢,需要的朋友可以參考下
    2015-07-07
  • windows下安裝mysql8.0.18的教程(社區(qū)版)

    windows下安裝mysql8.0.18的教程(社區(qū)版)

    本文章簡(jiǎn)單介紹一下mysql在windows下的安裝方式,主要介紹了mysql社區(qū)版8.0.18版本,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2020-01-01
  • MySQL對(duì)數(shù)據(jù)表已有表進(jìn)行分區(qū)表的實(shí)現(xiàn)

    MySQL對(duì)數(shù)據(jù)表已有表進(jìn)行分區(qū)表的實(shí)現(xiàn)

    本文主要介紹對(duì)現(xiàn)有的一個(gè)表進(jìn)行創(chuàng)建分區(qū)表,并把數(shù)據(jù)遷移到新表,可以按時(shí)間來(lái)分區(qū),具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-10-10
  • mysql 8.0.25 解壓版安裝配置方法圖文教程

    mysql 8.0.25 解壓版安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.25 解壓版安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • MySQL索引使用全程分析

    MySQL索引使用全程分析

    本文將介紹MySQL索引詳細(xì)使方法;需要的朋友可以參考下
    2012-11-11

最新評(píng)論