我有一个网页由一个form表单,有三个文本框为输入查询的条件,查询方式为:可以三个条件同时满足,或任意满足其中两个条件,或任意一个条件的查询。我想求一段代码(查询的语句sql),应该怎么写?谢谢!!!

解决方案 »

  1.   

    用户在页面输入查询条件和查询方式 你后台判断然后写xql就可以了你觉得难度在哪里
      

  2.   

    我写了一个含有两个条件的查询方法,代码如下:
    但是三个条件的我就想不明白了,不知道该怎么写了.麻烦帮我看一下,谢谢!!!<%
     request.setCharacterEncoding("GBK");    //处理中文字符串
        
     //构造查询SQL语句
     String sqlString=null;    //SQL语句
     String name = request.getParameter("name");
     String sex  = request.getParameter("sex");
     if(name==null||name.trim().length()==0)
     sqlString = new String("select * from abc");
     else
     sqlString = new String("select * from abc where name like '%"+name+"%'");
       if(sex==null||sex.trim().length()==0)
    ;  //SQL语句不变
       else
     if(sqlString.indexOf("where")==-1)   //SQL语句中没有where子句
     sqlString = sqlString+" where sex like '"+sex+"'"+" order by dd";
     else
         sqlString = sqlString+" and sex like '"+sex+"'"+" order by dd";
     %>
      

  3.   

    你这样写太麻烦了String name = "ddd";
    String sex = "bbb";
    String address = "www"; StringBuffer sql = new StringBuffer("select * from user where 1 = 1 ");
    boolean valid = false; if (name != null && name.trim().length() > 0) {
    sql.append(" and name like '%" + name + "%'");
    valid = true;
    }
    if (sex != null && sex.trim().length() > 0) {
    sql.append(" and sex like '%" + sex + "%'");
    valid = true;
    }
    if (address != null && address.trim().length() > 0) {
    sql.append(" and address like '%" + address + "'%");
    valid = true;
    }
          
    if(valid) {

    //执行sql
    }
      

  4.   

    String name = "ddd";
    String sex = "bbb";
    String address = "www";这三个换成你的request.getParameter();
    就可以了
      

  5.   

    不知道表达够不够清楚,你参考一下吧
    把有输入的条件给数组conditions,  没有输入的赋nullString[] conditions = new String[3];... ...

    StringBuffer sql = "select * from table1 where 1 <> 1 ";
    for (int i; i < conditions.length; i++) {
        if (conditions[i] != null) {
             sql.append(" or ").append(conditions[i]);
        }
    }return sql.toString();... ...
      

  6.   

    if(valid) {
    //执行sql
    }
      

  7.   

    请问这里的 //执行sql   代码应该怎么写,我没有写明白
    if(valid) {
                  //执行sql
    }
      

  8.   

    在if里面 直接勾践statement 就可以了
      

  9.   

    兄弟 JDBC 你会吗 不会的话 我给你代码也不是办法好好看看书吧
      

  10.   

    jdbc 我会,但是你那么写我就不怎么明白了
    是吧这些写在里面吗         Connection con;
    Statement sql;
    ResultSet rs;
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String url ="jdbc:odbc:jj";

    con=DriverManager.getConnection(url,"xkxk","xkxk");
    sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs=sql.executeQuery(sqlString);
      

  11.   

    rs=sql.executeQuery(sql); //我上面的代码就是得到这个sql 语句现在把sql传过Statement就可以了
      

  12.   

    String name = "ddd";
    String sex = "bbb";
    String address = "www"; StringBuffer sql = new StringBuffer("select * from user where 1 = 1 ");
    boolean valid = false; if (name != null && name.trim().length() > 0) {
    sql.append(" and name like '%" + name + "%'");
    valid = true;
    }
    if (sex != null && sex.trim().length() > 0) {
    sql.append(" and sex like '%" + sex + "%'");
    valid = true;
    }
    if (address != null && address.trim().length() > 0) {
    sql.append(" and address like '%" + address + "'%");
    valid = true;
    } if (valid) { Connection con = null;
    Statement stmt = null;
    ResultSet rs; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String url = "jdbc:odbc:jj"; con = DriverManager.getConnection(url, "xkxk", "xkxk");
    stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    rs = stmt.executeQuery(sql.toString()); while (rs.next()) { // 操作数据
    } }
      

  13.   

    非常感谢你朋友interpb,我明白了应该怎么写.谢谢啊!
      

  14.   

    就在页面 用javascript 写
      

  15.   

    StringBuffer sql = new StringBuffer("select * from user where 1 = 1 ");
    后面加条件就ok了, 若没条件这个就能用呀!!!
      

  16.   

    我没写过javascript,应该怎么写啊“StringBuffer sql = new StringBuffer("select * from user where 1 = 1 ");
    后面加条件就ok了, 若没条件这个就能用呀!!!”但是提示错误页面
      

  17.   

    select * from table1 where (a='a') or (a='a' and b='b')or ((a='a'&&b='b'&&c='c')
      

  18.   

    select * from table1 where (a='a') or (a='a' and b='b')or ((a='a'&&b='b'&&c='c')
    这么写有意义吗
    与 
    select * from table1 where (a='a') 有区别吗
      

  19.   

    假设三个条件   name  pwd  email  表名 userString sql = "select * from user where 1='1'";     if(name != null && !name.equals(""))
        
                sql += " and name="+name;     if(pwd != null && !pwd.equals(""))
        
                sql += " and pwd="+pwd;     if(email != null && !email.equals(""))
        
                sql += " and email="+email;
      

  20.   

    if(valid) {//执行sql
    } else {                                          
                 out.println("<script>alert('输入查询条件')</script>");
                  return ;
    }
      

  21.   

    <script type="text/JavaScript" language="JavaScript">
    function validInfo(){
    var textname1 = document.forms[0].textname1;
    var textname2 = document.forms[0].textname2;
    var textname3 = document.forms[0].textname3;
    if(textname1.value==''&&textname2.value==''&&textname3.value==''){
    alert("至少输入一个条件!");
      return false;
    }
    return true
    }
    </script>在你提交的时候调用这个函数就OK啦!
      

  22.   

    interpb(曾曾胡,深怕情多累美人!) ,你帮人蛮热情的啊,好人啦
      

  23.   

    關注中.
    假设三个条件   name  pwd  email  表名 userString sql = "select * from user where 1='1'"; 這句不是一開始就會執行了麼,它直接就顯示這條語句了。後面的條件就沒有執行了啊.(我就是碰到這樣的情況)     if(name != null && !name.equals(""))
        
                sql += " and name="+name;     if(pwd != null && !pwd.equals(""))
        
                sql += " and pwd="+pwd;     if(email != null && !email.equals(""))
        
                sql += " and email="+email;
      

  24.   

    晕~ 先把 sql 语句拼好  完整的是这样的数据库连接代码 省略。String sql = "select * from user where 1='1'";     if(name != null && !name.equals(""))
        
                sql += " and name="+name;     if(pwd != null && !pwd.equals(""))
        
                sql += " and pwd="+pwd;     if(email != null && !email.equals(""))
        
                sql += " and email="+email;
          rs = st.executeQuery(sql);