SQL語句中 AND和OR的區別
區別1:
and是與運算;or是或運算。
區別2:
and運算要前后兩個運算對象都為真是,and運算結果才為真;
or運算是兩個運算對象中有一個為真,or運算結果就為真。
區別3:
and運算中如果第一個條件和第二個條件都成立,則and運算符顯示一條記錄。
or運算中如果第一個條件和第二個條件中只要有一個成立,則or運算符顯示一條記錄。
區別4:
對于SQL語句要執行的動作來說,無論是事務還是查詢,and運算符連接的所有條件都必須為true。
對于SQL語句要執行的動作來說,無論是事務還是查詢,or運算符連接的所有條件中只需要有一個為true即可。
SQL語句的where
where id = 1 AND (sno = xxx OR 1 = 1)
用這試一下,sql注入的做法.
可是我要的是當sno沒值傳進來的時候就永遠成立,有值傳進來就要判斷的
這個恐怕做不到。
只能做到說是給sno一個默認值(一個sno永遠不可能的值),然后沒有參數進來的時候,程序自然去判斷1=1從而忽略掉sno = xxxx, 不去判斷后面的sno =xxx,
如果有參數進來的時候,程序首先判斷sno = 傳遞來得值,而忽略后面的1=1。
因此必須確保or前后的語句的次序以實現這個
select * from table where id=1 and (sno = xx OR 1 = 1)
sql注入個人能力范圍內只能到這個程度了。
轉載請注明出處華閱文章網 » sql語句whereandor