1。WHERE name LIKE "%abc%"查询条件这样写时,只要一执行查询就给我变成了WHERE (name LIKE [%abc%])并且提示错误"列名%abc%"无效。
2。如果我的查询条件中包含特殊字符如这样去查询:where name like "%abc(东来东往)_-[By_DjV ReMix]%"; 应该如何把查询条件中的特殊字符给转义掉。。
很急。。昨晚搞了一个通宵没解决掉。所以现在来网吧发帖。求哥们儿帮好好回答一下。详细点。谢谢。
2。如果我的查询条件中包含特殊字符如这样去查询:where name like "%abc(东来东往)_-[By_DjV ReMix]%"; 应该如何把查询条件中的特殊字符给转义掉。。
很急。。昨晚搞了一个通宵没解决掉。所以现在来网吧发帖。求哥们儿帮好好回答一下。详细点。谢谢。
如果是用的MYSQL数据库 如果我的查询条件中包含有特殊字符如[ 则MYSQL也能查询出来。但如果是MSSQL 则不能查询出来,必须把[替换成[[]才能查询出来,这是因为数据库本身的差异吗?求解再有,我想问一下,MSSQL中还有哪些特殊字符是查询条件中如果包含该特殊字符就必须替换转义的,现在我只遇到了[ 网上有人说_ 也不是但我查询条件中有_ 也能查询出来。。更不解。。谢谢。。求解。。
\_ \%
楼上的这位兄弟,由于当时发帖心急,把MSSQL打成了MYSQL 应该是MSSQL 2008 现在我更改不了帖子了所以不能更正过来。我想问一下为什么特殊字符在MYSQL中不用转就能通过,而在MSSQL就必须要转呢。另外MSSQL中查询时哪些字符算特殊字符,应该如何转。
--------------------------------------------------------------- 特殊字符有很多,我不想一一說出. 只是告訴你方法,你自己用SQLServer提供的char函數轉義. 比方說:
select char(39) 代表單引號
select char(34) 代表雙引號 char函數中填寫的是該字符的asc碼. 欲想知道字符的asc碼,請用ascii函數: 比方說,我想知道&的asc碼:
select ascii('&') 這樣即可 得到的結果是38. 那麼你用:
select char(38)就可以表示&了.
--------------------------------------------------------------- 一般特殊字符都是用char()函数来转义
比如对控制字符,在字符串中用 CHAR(13) 和 CHAR(10) 可以产生一个回车并生成一个新行。
2> go
姓名|类别|时间
--|--|------------(0 rows affected)
1> select top 1 * from t1 where 'aa%aa' like '%[%]%'
2> go
姓名|类别|时间
--|--|------------
张 |A |201001251730(1 rows affected)
1>