4
假設我有這樣的說法:SQL的操作順序?
SELECT * FROM MyTable WHERE a = 1 or b = 2 and c = 3
這是否意味着:(1 = 1)或(b = 2和c = 3)或意思(A = 1或b = 2)和C = 3?我能改變它的含義嗎,即在AND之前執行OR還是不可能?
假設我有這樣的說法:SQL的操作順序?
SELECT * FROM MyTable WHERE a = 1 or b = 2 and c = 3
這是否意味着:(1 = 1)或(b = 2和c = 3)或意思(A = 1或b = 2)和C = 3?我能改變它的含義嗎,即在AND之前執行OR還是不可能?
從Technet:
當不止一個邏輯運算符在聲明中使用, 運營商首先評估。您可以使用括號更改評估順序 。
所以是的,這意味着(a = 1) OR (b = 2 AND c = 3)
。
如同上面一樣可以強制你想要的行爲寫在括號:(a = 1 OR b = 2) AND c = 3
'(A = 1)或(b = 2和c = 3)' – alfasin 2012-07-17 05:46:01
的操作順序並沒有真正遵循這個。它會返回任何其中a = 1和c = 3或任何其中b = 2的任何東西,因此更多的是 (a = 1和c = 3)或b = 2' – jeschafe 2012-07-17 05:47:53
對不起,我知道這不是最好的例子,我的真實世界問題非常大,難以總結爲一個緊湊的方式,我只需要知道如何將操作合併在一起 – tweetypi 2012-07-17 06:19:15