关于SQL中的 where 1 = 1 的用法
作者:互联网
在项目中的常见的一个操作:在有关SQL的代码中加入where 1 = 1,关于它的用法,可以总结如下:
首先,where 1 = 1的用法往往是为了方便后续的给SQL增加where限制条件。如果实现加入了where 1 = 1,后续的条件只需加入and ... 这种形式的代码就可以准确执行了。举个例子,
不加where 1 = 1 时:
sqlStatement = "select * from table_car" whereClause = ""; if (modelYear != 0) { if (whereClause != "") whereClause = whereClause + " and "; sqlStatement += "year="+modelYear; } if (manufacturer != "") { if (whereClause != "") whereClause = whereClause + " and "; sqlStatement += "value="+manufacturer } if (color != "") { if (whereClause != "") whereClause = whereClause + " and "; sqlStatement += "color="+color } if (california) { if (whereClause != "") whereClause = whereClause + " and "; sqlStatement += "hasCatalytic=1" } if (whereClause != "") sqlStatement = commandText + "WHERE "+whereClause;
加上where 1 = 1 后:
sqlStatement = "select * from table_car"; if(Year != 0) commandText+=" and year=" + modelYear if(manufacturer != "") commandText += " and value=" + manufacturer if(color != "") commandText += " and color=" + color if(california != 0) commandText += " and hasCatalytic=1"
很明显,加上where 1 = 1后,代码的拓展性大大增加而且更加简洁。在后续为SQL加入限制条件时会非常的方便。
此外,SQL查询引擎在执行SQL时,如果遇到where 1 = 1 它会忽略这个条件,因此where 1 = 1 对SQL的性能并没有影响。
标签:commandText,color,用法,whereClause,SQL,sqlStatement,where 来源: https://www.cnblogs.com/wangkundentisy/p/12070032.html