sql中的 or 和 and
阿新 • • 發佈:2018-11-17
前言
在以前的專案中,都沒有使用過or,這次用到了,就花時間來整理下.
使用
這裡首先要說明的是優先順序的問題,
or的優先順序是倒一,
and的優先順序是倒二.
例子1
SELECT * FROM USER WHERE 1=1 OR ID='1';
這裡1=1查出的是所有的資料,id=1,包含在1=1中.所以這裡查出的是所有資料.
例子2
SELECT * FROM USER WHERE ID='1' AND ID='2' OR ID='3';
以上的sql語句可以看成 [ ID='1' AND ID='2' ] OR ID='3'
讓or的左右相對比,其中一方滿足就顯示出資料.當兩方都滿足同一個資料,那麼這個資料只會出現一次.
例子3
SELECT * FROM USER WHERE ID='1' OR ID='2' AND ID='3' OR ID='4';
考慮到優先順序的問題,以上會優先執行[ ID ='2' AND ID = '3' ].
接著執行ID ='1' OR [ ID ='2' AND ID = '3' ] OR ID ='4';
所以在執行有or的查詢條件時,最好用()括號,括起來,這樣不僅方便維護,易懂.而且還不容易出錯.