同时传来3个参数做为条件,怎样拼接这个sql语句
select * from (select * from b where aa='bb') a .... (假设的 不用关心正确与否,关键是拼接后边的3个参数)
3个参数传过来并不知道哪个有值怎样在后边加上where条件,有可能按照一个参数做为条件,有可能三个参数做为条件(...and....and......)
select * from (select * from b where aa='bb') a .... (假设的 不用关心正确与否,关键是拼接后边的3个参数)
3个参数传过来并不知道哪个有值怎样在后边加上where条件,有可能按照一个参数做为条件,有可能三个参数做为条件(...and....and......)
if(!"".equals(parameter1.trim()))
{
strSql.append("WHERE aa='" + parameter1.trim() + "'");
//分别添加第二三个条件
if(!"".equals(parameter2.trim()))
{
strSql.append(" AND bb=" + parameter2.trim() + "'");
}
if(!"".equals(parameter3.trim()))
{
strSql.append(" AND cc=" + parameter3.trim() + "'");
}
}
//第一个参数为空,添加第二三个条件需要加Where
else
{
//第二个参数不为空,Where 加在前面,同时对第三个参数进行判断。
if(!"".equals(parameter2.trim()))
{
strSql.append(" WHERE bb=" + parameter2.trim() + "'");
if(!"".equals(parameter3.trim()))
{
strSql.append(" AND cc=" + parameter3.trim() + "'");
}
}
//第二个参数为空,对第三个参数进行判断,Where 加在第三个参数前面。
else
{
if(!"".equals(parameter3.trim()))
{
strSql.append(" WHERE cc=" + parameter3.trim() + "'");
}
}
}没测过,不知道逻辑对不对,也不知道楼注是不是这个意思。
好像还能简化,我随便写的,仅供楼注参考
sqlfh=sqlfh+" 图书名称='"+adaptee.jTextField1.getText()+"' and ";
}
if(!jTextField2.getText().equals("")){
sqlfh=sqlfh+" 出版社='"+adaptee.jTextField2.getText()+"' and ";
}
if(!jTextField3.getText().equals("")){
sqlfh=sqlfh+" 作者='"+adaptee.jTextField3.getText()+"' and ";
}
if(sqlfh=="")
{
sqlfh="select * from friends";
}
else
{
sqlfh="select * from friends where"+sqlfh.substring(0,(sqlfh.length()-5));
System.out.println(sqlfh);
}
if(!jTextField1.getText().equals("")){
sqlfh=sqlfh+" and 图书名称='"+adaptee.jTextField1.getText()+"'";
}
if(!jTextField2.getText().equals("")){
sqlfh=sqlfh+" and 出版社='"+adaptee.jTextField2.getText()+"'";
}
if(!jTextField3.getText().equals("")){
sqlfh=sqlfh+" and 作者='"+adaptee.jTextField3.getText()+"'";
}
where 图书名称 like '%'+bookname+'%'等
参数:param1,param2,param3,
whereSQL += param1==null||param.equals("")?"":" and f1="+param1;
whereSQL +=.........