1. 程式人生 > >sql中and和or的優先順序

sql中and和or的優先順序

        首先and的優先順序大於or,通俗理解其實or查詢其實會把條件分為左右兩邊來查。

        如 SELECT * FROM USER WHERE ID = 1 AND STATUS = 2 OR STATUS = 3,本來是想查詢USER表中id為1的狀態為2或者3的資料,其實只會這樣執行,and比or優先,結果是查詢id為1和狀態為2,或者狀態為3的資料。

        解決方法,如果是同欄位,如上例子,可SELECT * FROM USER WHERE ID = 1 AND STATUS in (2,3),或者SELECT * FROM USER WHERE ID = 1 AND (STATUS = 2 OR STATUS = 3),就可以了。