向已經具有 where 1=1 的查詢添加條件時,此后的所有條件都將包含 AND,因此在注釋掉試驗查詢的條件時更容易。
這類似于另一種在列名之前而不是之后加入逗號的技巧。同樣,更容易注釋:
在動態 SQL 中
這也是以編程方式構建 SQL 查詢時的常見做法。從“where 1=1”開始,然后附加其他條件,例如“ and customer.id=:custId”,具體取決于是否提供了客戶 ID。這允許開發人員在查詢中附加以“and ...”開頭的下一個條件。這是一個假設的例子:
stmt = "select * " stmt += "fromTABLE" stmt += "where1=1" if user chooses option a then stmt += "and A isnotnull" if user chooses option b then stmt += "and B isnotnull" if user chooses option b then stmt += "and C isnotnull" if user chooses option b then stmt += "and D isnotnull"