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)