數據表:
使用OR關鍵字時:
只要符合這幾個查詢條件的其中一個條件,這樣的記錄就會被查詢出來。
如果不符合這些查詢條件中的任何一條,這樣的記錄將被排除掉。
使用and關鍵字時:
需要符合所有條件,這樣的記錄就會被查詢出來。
如果有任何一個條件不符合,這樣的記錄將被排除掉。
可以發現上面兩條語句僅僅是調換了where條件后面的and和or,結果就變了。
這是由於and與or優先級所引起的:
and和or同級別時and的優先級高於or
因此
當mysql的WHERE語句中出現AND OR時,使用OR組合的並列條件要用小括號把兩個條件和”OR”包起來。
這樣就不會出現結果不一樣了。