日期:2014-05-18 浏览次数:20839 次
create table #temp(idnum VARCHAR(6),idname varchar(20)) insert into #temp values('id1','11') insert into #temp values('id2','12') insert into #temp values('id3','112') declare @str VARCHAR(10) set @str='11,12,33,112' select * from #temp where CHARINDEX(idname,@str)>0 /* idnum idname ------ -------------------- id1 11 id2 12 (2 行受影响) */ --删除 DELETE FROM #temp WHERE CHARINDEX(idname,@str)>0
------解决方案--------------------
在程序中使用字符串操作就可以了
1 先使用Split()方法得到每个逗号分隔的字符串,再循环得到的字符数组判断是否有等于11的字符串
2 使用Replace()方法
------解决方案--------------------
把字段A用豆号分隔 string[] a =A.Split(',');
循环遍历数组a, 等于11,就是存在的。
string b="";
for(int i=0;i<a.length;i++)
{
if(a[i]!="11")
{
b+=a[i];
}
}
------解决方案--------------------
string strA = "11,22,112"; Console.WriteLine(strA.Split(',').Contains("11")); //true Console.WriteLine(strA.Split(',').Contains("1")); //false
------解决方案--------------------
Regex.IsMatch(yourstr,@"\b11\b")
Regex.Replace(yourstr,@"\b11\b","")