干啥要有and 和where呢?你直接from Order后面跟个where 1= 1然后所有的条件都可以用and了

解决方案 »

  1.   

    SQL写成这样  select * from tab where 1=1
    每当用户添加一个条件就增加 and xxx = xxx
    这样就可以了
      

  2.   

    嗯 楼上 where 1=1 已经告诉你了
    有条件才执行后面的 条件  没条件执行 select * from 表 where 1=1 了
      

  3.   

    可以先直接测试sql语句,跑通了,再检查日期类型、格式。
      

  4.   

          //如果开始时间不为空
            if(startTime != null){
                whereSql += " and addTime >= ?" ;
                params.add(startTime);
            }
            //如果结束时间不为空
            if(endTime != null){
                whereSql += " and addTime <= ?";
                params.add(endTime);
            }
            if(endTime != null && startTime != null){
                 whereSql += " and (addTime >= ? and addTime <= ?)" ;
                  params.add(startTime);
                  params.add(endTime);
            }
      

  5.   

    String partno1=(partno==null||partno.equals("null")||partno=="")?"B":partno;
      String basicfilm1=(basicfilm.equals("0"))?"M":basicfilm;
      String pins1=(pins.equals("0"))?"pins":pins;
      String LS1=(LS.equals("0"))?"LS":LS;
      String seriesifa1=(seriesifa.equals("0"))?"seriesifa":seriesifa;
      String generalifa1=(generalifa.equals("0"))?"ifageneral":generalifa;
      out.print(generalifa1+"<br>");
      out.print(pins1+"<br>");
      out.print(seriesifa1+"<br>");
      out.print(LS1+"<br>");
     
      String sql ="SELECT DISTINCT head1.PartNO,head1.denomination,filmre.seriesifa,filmre.ifageneral,head2.LS,woundlead.pins FROM head1 ,head2 ,woundlead ,filmre WHERE head1.PartNO like '"+partno1+"%' AND head1.denomination LIKE '"+basicfilm1+"%' AND filmre.ifageneral="+generalifa1+" AND filmre.seriesifa="+seriesifa1+" AND head2.LS="+LS1+" AND woundlead.pins="+pins1+" AND head2.PartNO like '"+partno1+"%' AND head2.PartNO = woundlead.PartNO AND woundlead.PartNO = filmre.PartNO GROUP BY head1.PartNO";
    这是我最近做的,设置默认值,如果是默认值就不起过滤作用