向已经具有 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"