1

考虑以下 SQL:

select * from dbname.tablename
where
    field1 = 'a' and
    field2 = 'b' and
    field3 = 'c' and
    1=1

您可能想知道为什么我会1=1在 WHERE 子句的末尾添加。对于临时查询,我这样做是为了可以注释掉任何条件组合,而无需修改 SQL。使用此 SQL,我可以注释掉,field1 = 'a' and并且由于尾随1=1条件,SQL 将起作用。考虑这个没有这个小技巧的 SQL:

    field1 = 'a' and
    field2 = 'b' and
    field3 = 'c'

注释掉field3 = 'c'会破坏 SQL,因为它会field2 = 'b' and被视为最终条件,它会向你咆哮,“还有什么??”

我问这个的原因是因为我知道在1=1将 SQL 粘贴到生产查询之前忘记从 WHERE 子句中删除。我想知道这是否会影响性能。 1=1是一个恒定的条件,所以即使记录集包含 10,000 行,这里是否真的进行了艰苦的计算?

4

1 回答 1

1

用甜美简单的话来说,NO

请参考答案

于 2013-04-23T13:16:22.617 回答