Sql-Server-2005

為什麼有人會在查詢中輸入“where 1=1”?

  • April 27, 2021

我今天在我們的數據庫中遇到了一個視圖,其中 where 子句中的第一條語句是where 1 = 1. 這不應該對每條記錄都返回 true 嗎?如果它不過濾任何記錄,為什麼有人會寫這個?

一些動態查詢建構器包含此條件,以便可以添加任何“真實”條件,AND而無需像if (first condition) 'WHERE' else 'AND'.

如果您的程序中有許多生成相似查詢的 SQL 語句建構點,則可以通過此技巧標記已檢查的一個。如果這句話是關於計數的,你可以使用下面的程式碼,這樣你就可以42從 SQL 日誌中提取出來。

select count(42) from table

引用自:https://dba.stackexchange.com/questions/763