Why would someone use WHERE 1=1 AND in a SQL clause?

后端 未结 19 1999
甜味超标
甜味超标 2020-11-22 07:08

Why would someone use WHERE 1=1 AND in a SQL clause (Either SQL obtained through concatenated strings, either view definition)

I\'ve

19条回答
  •  不思量自难忘°
    2020-11-22 07:34

    If the list of conditions is not known at compile time and is instead built at run time, you don't have to worry about whether you have one or more than one condition. You can generate them all like:

    and 
    

    and concatenate them all together. With the 1=1 at the start, the initial and has something to associate with.

    I've never seen this used for any kind of injection protection, as you say it doesn't seem like it would help much. I have seen it used as an implementation convenience. The SQL query engine will end up ignoring the 1=1 so it should have no performance impact.

提交回复
热议问题