日期:2014-05-17  浏览次数:20687 次

where子句
看别人的代码中发现他的SQL语句where子句这么拼的: 
where 1=1 and BH like '电工%'
求问 1=1 在此的作用是?

------解决方案--------------------
没用,仅仅是为了拼接WHERE子句方便。
------解决方案--------------------
这个是别人为了生成SQL语句方便才加上的...
比如:
if(bh != null || "".equals(bh)){
sql = sql + " and bh like ....";
}
if(bg != null || "".equals(bg)){
sql = sql + " and bg like ....";
}


如果不加1=1...那你也不知道哪个是第一个条件...那还要每句都去判断是不是第一个条件..如果不是就加上 
" and "...如果是则不加上 " and "
这个也是为了程序写起来简洁一点...
------解决方案--------------------
因为在代码中 不确定会不会有后面的多个条件(BH like '电工%') 所以这里添加一个1=1 方便后面添加条件


比如:

string sql = "select * from t1 where 1=1";
if(a != '')
sql+=" and a=a ";
if(b != '')
sql+=" and b=b ";

因为这里不确定a b是不是为空什么的 如果sql里面没添加where 1=1 后面的判断如何来添加、怎么拼接呢?


------解决方案--------------------
不确定是否在后面条件时,用1=1方便串接sql语句。