1. 程式人生 > >關於MySQL中AND和OR的優先順序的問題

關於MySQL中AND和OR的優先順序的問題

SQL比知必會一書中寫到:在使用AND和OR的時候,儘量用括號使語句的意思表達明白。

Mysql資料庫會優先處理AND操作符

但是博主在實際中被問到了這個問題,所以就探究了下MySQL資料庫中的AND和OR的優先順序問題

先看下實際表資料

語句如下:

select * from book where bid in (1,3,4) or  bname like 'Java%' and price = 30

因為Mysql先處理AND操作符,所以AND過濾出來的是沒有符合條件的,實際操作查詢結果是OR之前的條件。

交換AND和OR的順序

select * from book where bid in (1,3,4) and  bname like 'Java%' or price = 30

綜上兩種情況,Mysql是優先處理AND操作符