这个问题很简单,可让我很是费解:
like语句的用法应该很简单,我写了三个like语句
   1、select * from table where name like 'ac';执行有结果
   2、select * from table where name like 'bc';执行有结果
   3、select * from table where name like '[ab]c';执行却没结果了
在网上看了N篇文章,都是说 [abc]d 表示的就是“a或b或c开头,d结尾的字符串”,可我上面的第三个命令就是返回结果null。很郁闷,求解!!!

解决方案 »

  1.   

     like  '%ab%'  要匹配的地方写上%
      

  2.   

    什么数据库啊,不是所有数据库的所有版本都支持正则表达式的像oracle 10g才支持regexp_like的用法,但like依然是不支持正则的,不然就没法兼容老版本了
      

  3.   

    oracle几?
    要用正则吧
    select * from table where REGEXP_LIKE(name, '[ab]c')
      

  4.   

    那个符号写不写都可以的,那个符号只是表示有没有其他字符串,我数据库有ac和bc,不用%应该是正常的
      

  5.   

    那就直接用in好了
    select * from table where name in ('ac', 'bc')
      

  6.   

    我提的问题只是举个例子,实际的需求是还要用到模糊查询,所以还要用到like,我先换个数据库版本试试
      

  7.   

    也许和我这版本有关,mysql5.1,我先安哥5.5试试
      

  8.   

    可是我用where name like '%c'可以把ac bc 查询出来,就是不能用[]
      

  9.   

    你那mysql什么版本的,可以用like的方括号吗?我试了5.0,5.1,5.5都不行。