同时传来3个参数做为条件,怎样拼接这个sql语句
select * from (select * from b where aa='bb') a .... (假设的 不用关心正确与否,关键是拼接后边的3个参数)
3个参数传过来并不知道哪个有值怎样在后边加上where条件,有可能按照一个参数做为条件,有可能三个参数做为条件(...and....and......)

解决方案 »

  1.   

    //第一个参数不是空
    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() + "'");
    }
    }
    }没测过,不知道逻辑对不对,也不知道楼注是不是这个意思。
    好像还能简化,我随便写的,仅供楼注参考
      

  2.   

    sqlfh="";                         if(!jTextField1.getText().equals("")){
                             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);
                             }
      

  3.   

    sqlfh="select * from friends where 2>1";
     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()+"'";
                             }
      

  4.   

    SQL语句有 为任意的函数吗?可以在 条件中加 aa=任意 之类象
    where 图书名称 like '%'+bookname+'%'等
      

  5.   

    whereSQL = "where 1=1";
    参数:param1,param2,param3,
    whereSQL += param1==null||param.equals("")?"":" and f1="+param1;
    whereSQL +=.........