1。WHERE name LIKE "%abc%"查询条件这样写时,只要一执行查询就给我变成了WHERE     (name LIKE [%abc%])并且提示错误"列名%abc%"无效。
2。如果我的查询条件中包含特殊字符如这样去查询:where name like "%abc(东来东往)_-[By_DjV ReMix]%"; 应该如何把查询条件中的特殊字符给转义掉。。
很急。。昨晚搞了一个通宵没解决掉。所以现在来网吧发帖。求哥们儿帮好好回答一下。详细点。谢谢。

解决方案 »

  1.   

    mysql 呵呵,没弄过试试 where name like ‘%abc%’
      

  2.   

    不好意思,打错字了。是mssql 2008 不是mysql
      

  3.   

    WHERE name LIKE '%abc%'换成单引号
      

  4.   

    WHERE name LIKE '%abc%'
      

  5.   

    where name like '%abc(东来东往)_-[By_DjV ReMix]%'
      

  6.   

    首行说一句,感觉楼上的几位帮助及提示,现在问题解决了。但只是解决了部门,还是先说一下我的不解吧。
    如果是用的MYSQL数据库 如果我的查询条件中包含有特殊字符如[  则MYSQL也能查询出来。但如果是MSSQL 则不能查询出来,必须把[替换成[[]才能查询出来,这是因为数据库本身的差异吗?求解再有,我想问一下,MSSQL中还有哪些特殊字符是查询条件中如果包含该特殊字符就必须替换转义的,现在我只遇到了[ 网上有人说_ 也不是但我查询条件中有_ 也能查询出来。。更不解。。谢谢。。求解。。
      

  7.   

    MySQL 没有 2008 这个版本,你用的是哪个版本?另外不要用双引号WHERE name LIKE '%abc%'特殊字符给转义掉
    \_ \%
      

  8.   


    楼上的这位兄弟,由于当时发帖心急,把MSSQL打成了MYSQL 应该是MSSQL 2008 现在我更改不了帖子了所以不能更正过来。我想问一下为什么特殊字符在MYSQL中不用转就能通过,而在MSSQL就必须要转呢。另外MSSQL中查询时哪些字符算特殊字符,应该如何转。
      

  9.   

    SQL SERVER中字符串插入,有那些字符是特殊字符,不能插入?数据库会自动处理吗?如果不能,数据库又提供了函数可以转化它们吗?DB-LIBRARY中的函数那个可以转化它们? 
    --------------------------------------------------------------- 特殊字符有很多,我不想一一說出. 只是告訴你方法,你自己用SQLServer提供的char函數轉義. 比方說: 
    select char(39) 代表單引號 
    select char(34) 代表雙引號 char函數中填寫的是該字符的asc碼. 欲想知道字符的asc碼,請用ascii函數: 比方說,我想知道&的asc碼: 
    select ascii('&') 這樣即可 得到的結果是38. 那麼你用: 
    select char(38)就可以表示&了. 
    --------------------------------------------------------------- 一般特殊字符都是用char()函数来转义 
    比如对控制字符,在字符串中用 CHAR(13) 和 CHAR(10) 可以产生一个回车并生成一个新行。
      

  10.   

    你可以把%, _ 写成 [%],[_]1> select top 1 * from t1 where 'aaaa' like '%[%]%'
    2> go
    姓名|类别|时间
    --|--|------------(0 rows affected)
    1> select top 1 * from t1 where 'aa%aa' like '%[%]%'
    2> go
    姓名|类别|时间
    --|--|------------
    张 |A |201001251730(1 rows affected)
    1>