日期:2014-05-18 浏览次数:20990 次
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","")