第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么有人會在SQL子句中使用WHERE 1=1和<初始條件>?

為什么有人會在SQL子句中使用WHERE 1=1和<初始條件>?

牛魔王的故事 2019-07-03 14:31:29
為什么有人會在SQL子句中使用WHERE 1=1和<初始條件>?為什么有人會用WHERE 1=1 AND <conditions>在SQL子句中(通過串連字符串獲得的SQL或視圖定義)我在某些地方看到,這將用于防止SQL注入,但這似乎非常奇怪。如果有注射WHERE 1 = 1 AND injected OR 1=1會有同樣的結(jié)果injected OR 1=1.稍后編輯:視圖定義中的用法如何?謝謝你的回答。不過,我還是不明白為什么有人會用這個構(gòu)造來定義視圖,或者在存儲過程中使用它。舉個例子:CREATE VIEW vTest ASSELECT FROM Table WHERE 1=1 AND table.Field=Value
查看完整描述

3 回答

?
明月笑刀無情

TA貢獻1828條經(jīng)驗 獲得超4個贊

如果條件列表在編譯時不知道,而是在運行時生成,則不必擔心是否有一個或多個條件。您可以生成它們,如下所示:

and <condition>

把它們連在一起。帶著1=1在開始的時候,and有什么可聯(lián)系的。

我從來沒有見過這個用于任何類型的注射保護,就像你說的那樣,它似乎不會有多大幫助。我把它看作是一種實現(xiàn)上的方便。SQL查詢引擎將最終忽略1=1因此,它不應該對性能產(chǎn)生影響。


查看完整回答
反對 回復 2019-07-03
?
楊魅力

TA貢獻1811條經(jīng)驗 獲得超6個贊

只需在Greg的回答中添加一個示例代碼:

dim sqlstmt as new StringBuilder
sqlstmt.add("SELECT * FROM Products")sqlstmt.add(" WHERE 1=1") ''// From now on you don't have to worry if you must 
''// append AND or WHERE because you know the WHERE is thereIf ProductCategoryID <> 0 then
  sqlstmt.AppendFormat(" AND ProductCategoryID = {0}", trim(ProductCategoryID))end ifIf MinimunPrice > 0 then
  sqlstmt.AppendFormat(" AND Price >= {0}", trim(MinimunPrice))end if


查看完整回答
反對 回復 2019-07-03
?
鳳凰求蠱

TA貢獻1825條經(jīng)驗 獲得超4個贊

我見過條件數(shù)目可以可變時使用它。

您可以使用“和”字符串連接條件。然后,不要計算傳入的條件數(shù),而是將“WHERE 1=1”放在STOCK SQL語句的末尾,然后拋出連接的條件。

基本上,它可以使您不必對條件進行測試,然后在它們之前添加一個“WHERE”字符串。


查看完整回答
反對 回復 2019-07-03
  • 3 回答
  • 0 關(guān)注
  • 870 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號