6.2.3 and、or運算子的組合使用
在where子句中,通過and、or運算子可以同時連線多個條件,當然and、or運算子也可以同時使用。但是當and、or運算子同時存在時,其優先順序如何確定呢?與大多數語言一樣,sql語言認為and運算子的運算級別要高於or運算子。即當出現
condition1時,其運算實際上是等價於or condition2
and condition3
condition1.因此,and、or運算子需要同時使用時,一定要注意運算子的優先順序。or (condition2 and condition3)
例項5 同時使用and、or運算子實現查詢
假如需要查詢所有計算機系和生物系中,且工資收入(sal)超過1000的教師的姓名(tname)、系(dname)、工資(sal)資訊。如果採用如下sql**:
select tname, dname, sal.執行結果如圖6.5所示。from teacher
where dname='計算機'
or dname='生物'
and sal>1000
order by sal
圖6.5 計算機系或者生物系中工資大於1000的教師
很顯然沒有得到預期的計算結果,這是因為and運算子的運算級別要高於or運算子,**實際上實現的查詢是計算機系的所有教師以及生物系中的工資大於1000的教師的相關資訊。要實現例中需要的查詢結果,正確的sql**為:
select tname, dname, sal執行結果如圖6.6所示。from teacher
where (dname='計算機' or dname='生物')
and sal>1000
order by sal
圖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 ...