当前位置: 代码迷 >> Sql Server >> where ''+ AllTId +'' like '%,104%' 这条sql语句为啥不会错
  详细解决方案

where ''+ AllTId +'' like '%,104%' 这条sql语句为啥不会错

热度:324   发布时间:2016-04-24 09:59:49.0
where ','+ AllTId +',' like '%,104%' 这条sql语句为什么不会错
select *
FROM Article 
 where   ','+ AllTId +','  like '%,104%' 

 ','+ AllTId +',' 是什么作用,他和AllTid的区别是什么?
------解决思路----------------------
用于模糊查询使用的匹配

不加的会  1  会匹配   2,3,41,5

加了的话  1只会匹配  2,3,1,5这种
------解决思路----------------------
select *
FROM Article 
 where   ','+ AllTId +','  like '%,104%' 

 ','+ AllTId +','是对字段AllTId的数据进行处理,将AllTId的数据前后分别加字符‘,’,之后再用处理后的数据匹配。
举例说明,例如AllTid的数据如下
104,102
102,104
102,104,102
104
‘,’+AllTid+','处理之后的数据为:
,104,102,
,102,104,
,102,104,102,
,104,
这样就可以用同一个表达式匹配,'%,104%' 来匹配所有的数据。如果不做处理的话,模糊查询会遗漏部分正确的数据。