...a.CanViewUser is NULL or len(a.CanViewUser)=0 or '',''+a.CanViewUser+'','' like ''%,''+@UserID+'',%'' or a.StoreHouseAdmin=@EmployeeID
我一直很疑惑,这个Like语句为什么中间要有“,”?
表里的数据存放的是:,1,2,3,4,5,6,7,
所以想知道3在不在,就用了like '%,3,%'
这个是为了解决两端数字的问题,比如,两边不加,号,还是取3,如果数据是:33,1,2,4,5,63 就错了
谢谢大家,我还有个疑问: ...or '',''+a.CanViewUser+'','' ...
这一行其中的两个","又是什么意思呢?
@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,
可能是字段CanViewUser的结构是这样的:,1,23,3,44,55,66,
为了保证唯一性,就两边都加个',',不然只是数字,就有重复的了
是为了区别 类似于 字符串中的 1 与 11 之间的辨别
为了找出匹配的数据,对数据库中的数据进行标准格式化;再通过like里面的字符规则,找出准确的数据。
我基本认同最前面两位的说法
表里的数据存放的是:,1,2,3,4,5,6,7,
所以想知道3在不在,就用了like '%,3,%'
这个是为了解决两端数字的问题,比如,两边不加,号,还是取3,如果数据是:33,1,2,4,5,63 就错了
学习了。。。