我的一个MySQL表有f1, f2, f3, f4, f5 五个int型字段,使用 JDBC 建立一个查询程序,查询条件是这五个字段中的任意个组合。请问有什么好办法吗?

解决方案 »

  1.   

    你在程序里面对输入进行判断,如果那个条件有输入,那么你的where条件里面就加上这个条件噻
    如:
      String SQL="select * from tab";
      String whereSQL="";
      if(f1==0)/*假设认为是0就是没有输入这个查询条件*/
      {
          whereSQL=" where f1="+f1;
      }
      if(f2==0)
      {
          if(whereSQL.equal(""))
          {
              whereSQL=" where f2="+f2;      }
          else
          {
              whereSQL=whereSQL+" and f2="+f2;      }
      }
    然后下面一次进行f3, f4, f5的判断
    最后的查询的SQL语句就是SQL=SQL+whereSQL;
    这就是五个条件任意组合的查询!
      

  2.   

    谢谢2楼Sunny319(努力学习java中.) 的回复!我主要也是考虑判断分支太多以及查询字符串生成的速度问题。
      

  3.   

    条件多的时候
    加个where 1=1
    后面直接加 and ...
    很方面:) 
      

  4.   

    对.可以事先就加个where 1=1的判断,后面就用and了,ttaallkk1(j2ee_lover) 的方法很巧妙啊
      

  5.   

    而且分支也没有那么多了!我觉得这里分支的效率对查询的影响还没有执行SQL查询的SQl的影响大!