进行没有WHERE约束的MySQL查询时,大多数人在查询中使用WHERE 1。但是,省略WHERE 1不会影响查询。两者之间有区别吗?被认为是最佳实践吗?
我认为这不是最佳做法,但是人们有时会使用它来简化动态查询的构建。
string sql = "SELECT * FROM mytable WHERE 1 "; if ( somecondition ) { sql += "AND somefield = somevalue "; } if ( someothercondition ) { sql += "AND someotherfield = someothervalue "; } ... etc
如果没有WHERE 1in,则需要在每个if块中检查是否需要放入a WHERE或an AND。
WHERE 1
if
WHERE
AND