【发布时间】:2010-11-06 04:15:19
【问题描述】:
对于我的 SQL 查询,我通常对 SELECT 语句执行以下操作:
SELECT ...
FROM table t
WHERE 1=1
AND t.[column1] = @param1
AND t.[column2] = @param2
如果我需要添加/删除/注释任何 WHERE 子句,这将很容易,因为我不必关心第一行。
使用此模式时是否会影响性能?
其他信息:
绵羊模拟器和所有其他没有得到使用的示例。
假设上述查询,我需要将@param1 更改为不包含在查询中:
1=1:
...
WHERE 1=1 <-- no change
--AND t.[column1] = @param1 <-- changed
AND t.[column2] = @param2 <-- no change
...
没有 1=1:
...
WHERE <-- no change
--t.[column1] = @param1 <-- changed
{AND removed} t.[column2] = @param2 <-- changed
...
【问题讨论】:
-
很抱歉,如果这听起来有点愚蠢,但我真的不确定在 WHERE 子句中添加 1=1 如何为您带来上述好处;您能为我们这些想了解这种可能的最佳实践的人详细说明一下吗?
-
@sheepsimulator:评论和取消评论任何条件都非常容易,只需在它前面加上双破折号 (--)
-
嘿阿德里安,我总是做同样的事情,构建动态查询真是太舒服了......
标签: sql-server tsql