现在 要给 人员做一个检索查询,可以通过 名称来查询。。
比如: select * from user where name like '%张三%'
如果 检索 为空,那么 就会 是select * from user where name like '%%'
但是这个sql不会检索出 name 为 null的值我想完成的功能就是: 如果 输入查询条件 就能 按照条件检索。
不过没有检索条件 就查询所有的记录

解决方案 »

  1.   

    "select * from user where name like \' "+"%"+"要搜索的内容"+"%\'"比如输入"Zark" 就是 select * from user where name like '%Zark%'不输入任何东西 则是 select * from user where name like '%%' 这条代码就是返回所有记录啊还是说我没明白楼主的意思?
      

  2.   

    哦,刚刚没看清楼主的题意。
    那你在程序里判断输入的数据是否为空,然后发送不同的sql不行吗?
      

  3.   


    String sql = "SELECT * FROM user u WHERE (1=1) "
    if(name!=null && name.length()>0){
        sql +=" AND u.name like '%"+ name +"% ";
    }拼SQL会更好一些!
      

  4.   

     在拼的时候只要有where 1=1 就不会出现错误,在任何情况下都成立
      

  5.   

    select * from user where 1=1 and name like '%"+(name==null?"":name)+"%' 
      

  6.   

    只要把传过来的参数做个衣服判断,然后and拼接sql语句就ok了首先  select * from emp where 1=1;然后下面if(传过来的值=null) {
    }
    或者    if(传过来的值!=null) {
       and xxx like...知道了吧
    }
      

  7.   

    拼SQL会发生注入的呢,,最好不好去拼sql....
      

  8.   

    拼SQL会发生注入的呢,,最好不好去拼sql....
      

  9.   

    String sql = "";
     if(username==null&&username.equals("")){     sql = "select * from user";
    }else{
         sql = "select * from user u where u.name like '%" + username +"%'";
    }
      

  10.   

    如果是oracle,直接在sql中用decode或case when就搞定了