首页新闻找找看学习计划

sql like 语句

0
悬赏园豆:5 [已解决问题] 解决于 2012-03-12 22:43

...a.CanViewUser is NULL or len(a.CanViewUser)=0 or '',''+a.CanViewUser+'','' like ''%,''+@UserID+'',%'' or a.StoreHouseAdmin=@EmployeeID

我一直很疑惑,这个Like语句为什么中间要有“,”?

小凡(loveok_56)的主页 小凡(loveok_56) | 菜鸟二级 | 园豆:205
提问于:2012-03-06 17:26
< >
分享
最佳答案
0

表里的数据存放的是:,1,2,3,4,5,6,7,

所以想知道3在不在,就用了like '%,3,%'

这个是为了解决两端数字的问题,比如,两边不加,号,还是取3,如果数据是:33,1,2,4,5,63  就错了

收获园豆:2
丁学 | 专家六级 |园豆:18530 | 2012-03-06 18:25

谢谢大家,我还有个疑问:  ...or '',''+a.CanViewUser+'','' ...

这一行其中的两个","又是什么意思呢? 

小凡(loveok_56) | 园豆:205 (菜鸟二级) | 2012-03-11 23:06

@loveok_56: 嗯……好像上面判断有点小问题,一直在说表里的数据是,1,2,3,4,5,6,样子的,再仔细看,发现应该是 1,2,3,4,5,6 的,所以 '',''+a.CanViewUser+'','' 就是 ,1,2,3,4,5,6, 了,a.CanViewUser两边的'',''是为了给这个数据两端加上逗号

不过这种做法效率很低,所以还是建议直接在表里存,1,2,3,4,5,6,

丁学 | 园豆:18530 (专家六级) | 2012-03-12 09:47
其他回答(4)
0

可能是字段CanViewUser的结构是这样的:,1,23,3,44,55,66,

为了保证唯一性,就两边都加个',',不然只是数字,就有重复的了

收获园豆:1
OOLi | 园豆:163 (初学一级) | 2012-03-06 17:56
0

是为了区别 类似于 字符串中的 1 与 11 之间的辨别

收获园豆:1
小小刀 | 园豆:1991 (小虾三级) | 2012-03-06 19:24
0

为了找出匹配的数据,对数据库中的数据进行标准格式化;再通过like里面的字符规则,找出准确的数据。

我基本认同最前面两位的说法

表里的数据存放的是:,1,2,3,4,5,6,7,

所以想知道3在不在,就用了like '%,3,%'

这个是为了解决两端数字的问题,比如,两边不加,号,还是取3,如果数据是:33,1,2,4,5,63  就错了

收获园豆:1
kicai | 园豆:196 (初学一级) | 2012-03-06 19:44
0

学习了。。。

KivenRo | 园豆:1722 (小虾三级) | 2012-03-06 20:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册