就是条件永远为真,查出所有数据来
在组合查询条件时候多用:
String sql="select * from user where 1=1 ";
if(username!=null) sql=sql+ " and username='"+username+"'";
if(password!=null) sql=sql+ " and password='"+password+"'";
这样方便很多,及时username,password两者都为空都可以查询
永远为真
主要是为了便于动态连接后续条件
有时候想查看一下表的字段就
select * from UB where 1=2,表示false 1=1表示true
-------------------------------------------
package StringTest;
public class Where {
/**
* 我用于高级查询情况下
* @param args
*/
public static void main(String[] args) {
Where s= new Where();
s.print("13432134321", "www.cjfuture.cn");
//null时,即为用户没有写值
s.print(null, "www.cjfuture.cn");
}
public void print(String mobile,String url){
StringBuffer sb = new StringBuffer("select id from tab where 1 = 1 ");
//如果没有1=1,下面的判断语句会比现在写复杂
if(mobile!=null){
sb.append("and mobile = "+mobile);
}
if(url!=null){
sb.append("and name = "+url);
}
System.out.println(sb.toString());
}
public void otherPrint(String mobile,String url){
StringBuffer sb = new StringBuffer("select id from tab");
//如果没有1=1,下面的判断语句会比现在写复杂,where放在哪里合适?
if(mobile!=null){
sb.append("and mobile = "+mobile);
}else{
sb.append(""); //如何写?
}
if(url!=null){
sb.append("and name = "+url);
}else{
sb.append(""); //如何写?
}
System.out.println(sb.toString());
}
}