首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql语句中 like特殊字符的有关问题

2012-01-30 
sql语句中 like特殊字符的问题 name_23__3_selectnamefromtablewherenamelike%_3_%这条语句会把上面2条记

sql语句中 like特殊字符的问题

name
_23_
_3_


select   name   from   table   where   name   like   '%_3_% '

这条语句会把上面2条记录全选出来。不信你们试试,以前没有注意到。
第一条不是我想要得,是不是   _   要特殊处理啊?




[解决办法]
还真的没有试过哦,那把-用[]括起来吧
[解决办法]
select name from table where name like '%\_3\_% ' escape '\ '
[解决办法]
where name like '%[_]3[_]% '
[解决办法]
declare @ta table(name varchar(10))
insert @ta
select '_23_ '
union select '_3_ '

--select name from @ta where name like '%_3_% '这样没有转义是不行的
用ESCAPE:

select name from @ta where name like '%!_3!_% ' ESCAPE '! '

(所影响的行数为 2 行)

name
----------
_3_

(所影响的行数为 1 行)


[解决办法]
用ESCAPE_转义普通符号就行了
[解决办法]
select * from
(
select col= '_23_ '
union all select '_3_ '
)a where col like '%a_3_% '
escape 'a '

--result
col
----
_3_

(1 row(s) affected)

热点排行