在用like模糊查询的时候 
      符号     含义 
LIKE '5[%]'    5% 
LIKE '[_]n'    _n 
LIKE '[a-cdf]' a、b、c、d 或 f 
LIKE '[-acdf]' -、a、c、d 或 f 
LIKE '[ [ ]'   [ 
LIKE ']'       ] 
LIKE 'abc[_]d%' abc_d 和 abc_de 
LIKE 'abc[def]' abcd、abce 和 abcf 这个我试了一下对于“_test------1\%[]”这条记录用like '[_]%'查询不到啊。到底这个[]是不是可以转译通配符啊?在对于含有 % _ [ ' 这样的内容 大家一般用什么办法呢?

解决方案 »

  1.   

    escape 可以使用。除此之外没有其他招了么
      

  2.   

    set escape on
    show escape
    如果是\那么
    select * from t where c1 like '\_%';
      

  3.   

    不是,你这是SQL SERVER中的。ORACLE中默认是\
      

  4.   

    select t.id,t.name from  t
    1 a 哈哈
    2 b gg
    3 c mm/
    4 d xinxin%%
    5 e _我们

    select t.id,t.name from t where t like '%/%%' escape '/';
    d xinxin%%
    select t.id,t.name from  t where t like '%/_%' escape '/';
      e _我们
      

  5.   

    LIKE '[-acdf]' -、a、c、d 或 f 
    这是正则表达式里的,like没有这样的用法吧
    like 里用escape转义
    如果数据库版本为10g以上,可以用regexp_like的正则表达式来匹配
      

  6.   

    我在1楼就说了,escape可以使用,我是想问问 还有其他招儿没有。3楼的朋友,我看网上说[]是标准sql里的啊,oracle不支持标准sql么,难道他们在忽悠我!!可恶。