not and or的優先順序

2021-06-08 19:18:02 字數 805 閱讀 3754

剛剛在專案中遇到這樣乙個問題,sql語句如下:

select * from loan_back_library where library_id=1 or lib_id=1 and status=3

我想要的結果的條件是:

1. library_id=1 或者 lib_id=1

2.status=3

但是結果並非如此,出現了status!=3的結果,但是卻匹配了 library_id=1 or lib_id=1

為什麼呢

原來這個sql的執行是這樣的:

select * from loan_back_library where library_id=1 or

lib_id=1 and status=3

修改為:

select * from loan_back_library where status=3 and library_id=1 or

lib_id=1

依然不正確

呵呵,發現問題了:

where 後面如果有or的條件,則or自動會把左右的查詢條件分開,原因就是:and的執行優先順序最高!

關係型運算子優先順序高到低為:not and or

問題的解決辦法是:

用()來區分執行順序!!!!

上面我所需要的sql語句是這樣的

select * from loan_back_library where

status=3 and (library_id=1

or lib_id=1

python優先順序佇列 python 優先順序佇列

簡介 優先順序佇列是基於堆的,關於堆的時候可以參考文章堆,優先順序佇列就是入隊時,會分配乙個優先順序,之後出隊時,根據優先順序出列。如,入隊時 4,a 6,r 3 d 則出隊順序 6,r 4,a 3 d 優先順序佇列的python實現 class priorityqueue object def i...

的優先順序大小 需求價值與優先順序

我們會接到不同 的需求,有的 於業務部門 領導要求,有的 於使用者反饋 線上問題,有的是市場反饋建議,或者競品已支援等等。收到原始需求之後,我們怎麼知道哪些需求要做?哪些需求要優先做,哪些可以往後排?或者在需要澄清需求價值時,我們要回答哪些問題後,才算講清楚了需求價值。又如何做需求的優先順序排序。首...

Linux程序優先順序和調整優先順序

linux 是乙個多使用者 多工的作業系統,系統中通常執行著非常多的程序。但是 cpu 在乙個時鐘週期內只能運算一條指令 現在的 cpu 採用了多執行緒 多核心技術,所以在乙個時鐘週期內可以運算多條指令。但是同時運算的指令數也遠遠小於系統中的程序總數 那問題來了 誰應該先運算,誰應該後運算呢?這就需...