數據庫SQL之and、or優先級

數據庫SQL之and、or優先級

操作表:表TABLE_A、表TABLE_B

條件:獲取當前用戶是主持人、或是記錄人、或是創建人、或子表中類型爲01,02,並且爲當前用戶id的數據。

SELECT *
FROM TABLE_A A,TABLE_B B 
WHERE A.STATUS = '200' AND
	  A.ZCR = '用戶id'  OR 
	  A.JLR='用戶id' OR 
	  A.CREATE_BY = '用戶id' OR
	  A.ID = B.CID  AND  B.TYPE IN ('01','02') AND   B.USER_ID = '用戶id'

考慮and 、or的優先級之後的寫法(僅供參考)

SELECT *
FROM TABLE_A A
LEFT JOIN TABLE_B B 
ON A.ID = B.CID AND 
B.TYPE IN ('01','02') AND B.USER_ID='用戶id'
WHERE A.STATUS = '200'  AND 
(A.ZCR='用戶id' OR A.JLR = '用戶id' OR A.CREATE_BY = '用戶id')

結論:and優先級高於or的優先級;

優先級排序:not 優先級高於 ; and 優先級高於 or

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章