SELECT * FROM table WHERE name LIKE '[张李王]三';
却找不到‘张三’  
按道理是要找出 张三,李三,王三的。
为什么呢?难道是汉字、字母所占字节的问题? 

解决方案 »

  1.   

    SELECT * FROM table WHERE name LIKE '%三'; 
      

  2.   

    SELECT * FROM table WHERE name LIKE '%三%'; 
      

  3.   

    不,楼上兄弟们 
    我就是要用SELECT * FROM table WHERE name LIKE '[张李王]三';这个语句的 
    难道是oracle 10g不支持这样的用法?
      

  4.   

    或者 你用  
    select t.* from rm.hrm_emp_info t where  instr(t.person_name,'三') >0
      

  5.   

    如果是正则表达式 也要用regexp_like  而非like
      

  6.   

    SELECT * FROM table WHERE regexp_like(name ,'[张]三');
      

  7.   


    select * from table where regexp_like(name,'[张李王]三');
      

  8.   

    select * from table WHERE (name LIKE '张'||'三%' or name LIKE '李'||'三%' or name LIKE '王'||'三%')
    或者
    select * from table WHERE (name LIKE '张'||'%' or name LIKE '李'||'%' or name LIKE '王'||'%')
      

  9.   

    http://blog.csdn.net/ZengMuAnSha/archive/2009/08/27/4489228.aspx
      

  10.   

    LIKE没有^,[]用法,10g以上正则表达式里才支持
      

  11.   


    oracle like 不支持正则,你可以使用支持like的正则regexp_like
      

  12.   

    你的意思应该是查出叫什么“三”的吧:
    select * from table where name like'%三'
     
    如果不是除非你想查的不是这个意思。
      

  13.   

    楼主oracle就不支持你写的那种方式