AND OR運算子的組合使用

2021-06-21 15:16:54 字數 1254 閱讀 6990

6.2.3  and、or運算子的組合使用

在where子句中,通過and、or運算子可以同時連線多個條件,當然and、or運算子也可以同時使用。但是當and、or運算子同時存在時,其優先順序如何確定呢?與大多數語言一樣,sql語言認為and運算子的運算級別要高於or運算子。即當出現

condition1

or   condition2

and   condition3

時,其運算實際上是等價於

condition1

or   (condition2 and condition3)

.因此,and、or運算子需要同時使用時,一定要注意運算子的優先順序。

例項5  同時使用and、or運算子實現查詢

假如需要查詢所有計算機系和生物系中,且工資收入(sal)超過1000的教師的姓名(tname)、系(dname)、工資(sal)資訊。如果採用如下sql**:

select  tname, dname, sal

from   teacher

where    dname='計算機'

or   dname='生物'

and   sal>1000

order by  sal

.執行結果如圖6.5所示。

圖6.5  計算機系或者生物系中工資大於1000的教師

很顯然沒有得到預期的計算結果,這是因為and運算子的運算級別要高於or運算子,**實際上實現的查詢是計算機系的所有教師以及生物系中的工資大於1000的教師的相關資訊。要實現例中需要的查詢結果,正確的sql**為:

select  tname, dname, sal

from   teacher

where    (dname='計算機' or dname='生物')

and   sal>1000

order by  sal

執行結果如圖6.6所示。

圖6.6  計算機系和生物系中工資大於1000的教師

可以發現,當在or運算子連線的兩個條件加上括號( )後,得到了需要的查詢結果。這是因為,括號( )的優先順序高於and運算子,執行過程就先於and運算子。

注意 當or運算子和and運算子同時運用時,建議使用者不要考慮其預設的優先順序順序,而是採用括號( )來實現需要的執行順序,這樣可以增強程式的可讀性。

php 運算子and or 的詳解

想弄清這個問題,首先要了解這些運算子的優先順序 了解後,我們才知道,邏輯運算和賦值運算的執行順序 and or 的優先順序小於 的優先順序大於 or 前面語句值為真,or後面不執行 否則,執行 result 0 or var dump 執行我的語句 輸出 執行我的語句 var dump result...

邏輯運算子and or 的理解

python 做邏輯運算的時候,我有一些有趣的理解。例如 a true b false c true d a or b and c那麼d 在中學學習排列組合的時候,就有過這樣的方法 分步驟用乘法,分類別用加法。所以可以把邏輯預算中的and理解為乘法,or理解為加法。因為 true的值為1,false...

SQL 中多個 and or 的組合運算

and or運算子的組合使用 在where子句中,通過and or運算子可以同時連線多個條件,當然and or運算子也可以同時使用。但是當and or運算子同時存在時,其優先順序如何確定呢?與大多數語言一樣,sql語言認為and運算子的運算級別要高於or運算子。即當出現 condition1 or ...