SQL中以逗号分隔的字符串的判断
例如,数据表t1中有⼀个字段PlayTheme存放的数值类似如下:
第⼀⾏:1,2,12
第⼆⾏:22,222,2222
第三⾏:1,2
第四⾏:2,12
第五⾏:2
如果你想取出PlayTheme字段包含'2'的⾏,在构造SQL(参数形式)时,要是写成下⾯这种形式的话,则会将五⾏⼀起取出来,显然达不到预期效果,第⼆⾏不是你想要的;
SqlStr.AppendFormat(@"WHERE … AND t1.PlayTheme LIKE '%{0}%'", param);
但是,写成下⾯这样的话,就可以顺利的取出第⼀、三、四、五⾏。
SqlStr.AppendFormat(@"WHERE … AND (t1.PlayTheme LIKE '%,{0},%' OR t1.PlayTheme LIKE '{0},%'
字符串截取逗号前面的 OR t1.PlayTheme LIKE '%,{0}' OR t1.PlayTheme = '{0}')", param);
还有⼀种⽅法,写法简单些:
patindex('%,{0},%',','+t1.PlayTheme+',')>0
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论