like_expression::=single_valued_path[ESCAPE escape-character]

解决方案 »

  1.   

    比如你想写 select * from Table_A where column_A like '%HI%',
    而想把HI用?号代替,然后输入变量。那么你应该这么写
    String str = "HI";
    String sql = "select * from Table_A where column_A like ?";
    str = "%" + "HI" + "%";
    PreparedStatement p = conn.prepareStatement(sql);
    p.setString(str);
    ResultSet rs = p.executeQuery();
    这样就可以实现模糊查询了.如果不是模糊查询,就不需要两个“%”号
      

  2.   

    LIKE '?1%'只能这样.不能完全模糊查询,必须给出首字符或字符串来查询. ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  3.   

    To:happyegg(快乐蛋) 
    你所说的方法应该是一般的jsp或者serverlet里面调用数据库数据模糊查询的方法吧,我需要的是在cmp里面的find方法中间去模糊查询.我曾经实验过'?1%',结果我发现参数?1的值根本无法传入,在部署的时候不会报错,是因为机器把两个单引号之间的?1当成了模糊查询的对象了,这个时候如果把数据库里的某项数据值改成?1,就可以得到结果.所以现在的问题是怎样才能够让参数值能够传入到查询语句中而部署又能够通过.
      

  4.   

    不会吧,你用的什么服务器???
    weblogic下不会有你说的那种问题的.
    http://www.yffw.com/test9/ 有一个简单的ejb ql 小教程.(我收集的:) ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  5.   

    LIKE
    Compares a string against a pattern. The pattern may contain wildcards: % to represent any string, or _ to represent a single character. The wildcards can be escaped by appending ESCAPE followed by the escape character. 
        ... WHERE h.state LIKE 'K%' 
    (would return the hotels in Kentucky or Kansas)     ... WHERE h.owner.name LIKE 'J__' 
    (two underline characters '_') 
    (would return hotels owned by Joe)    ... WHERE h.id LIKE 'A\_1%' ESCAPE '\' 
    (would return the hotels whose code begins with "A_1". Here the underscore character "_" is escaped by the backslash "\".)  ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??