1. 程式人生 > >sql中的 or 和 and

sql中的 or 和 and

前言

    在以前的專案中,都沒有使用過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的查詢條件時,最好用()括號,括起來,這樣不僅方便維護,易懂.而且還不容易出錯.