有關資料庫中新增 where1 1 的問題

2021-08-08 02:32:55 字數 535 閱讀 5388

最近在專案中發現很多sql用到了 where1=1 這個條件 然後,大概了解了一下他的具體作用:

select*from   fore_payment_order

where 1=1

and ta_no = #

and t_ta_no = #

這個sql, where後面的條件採用的是動態拼接,因為不能確定where後面的第乙個條件是否能夠成立,如果不加where1=1就需要判斷動態新增的條件是否為第乙個,如果是第乙個就不需要新增 and,這樣的話就要對每乙個動態條件進行判斷,比較麻煩。所以直接在前面直接新增1=1 ,這樣就可以在後面拼接條件時直接新增 and 而不需要進行條件判斷了。主要是為了語法不報錯。

使用where1=1 看到有些人說當資料量大的時候會影響到效率,會導致不適用索引,而進行全表檢索,但其實sql server優化器會自動進行優化,執行到1=1是會預設沒有條件

,會無視掉,直接執行後面的語句。索引之類的是完全用到的。所以說新增這個條件是不會影響到效率的。

T SQL中WHERE 1 1的作用

1 1或者 a a 等等恒等式是t sql中表達true的方法。因為在t sql中沒有true這樣的關鍵字或值,所以需要借助這些恒等式來表達true的概念。相對的,同樣可以使用1 1或者1 2等來表達false。在應用程式的安全性方面,使用這些式子是sql注入的基本原理,所以在拼接sql語句的時候要...

SQL中WHERE 1 1的作用

個人認為這篇文章寫的非常好,用例子把道理說的非常明白,所以轉了,希望對大家有所幫助。1 1或者 a a 等等恒等式是t sql中表達true的方法。因為在t sql中沒有true這樣的關鍵字或值,所以需要借助這些恒等式來表達true的概念。相對的,同樣可以使用1 1或者1 2等來表達false。在應...

SQL中where 1 1語句的作用

where 1 1有什麼用?在sql語言中,寫這麼一句話就跟沒寫一樣。但是這看似多餘的一條語句,卻有其獨特的用處。select from table1 where 1 1與select from table1完全沒有區別,甚至還有其他許多寫法,1 2,a a a b 其目的就只有乙個,where的條...