日期:2014-05-18  浏览次数:20439 次

SQL 字符拼接拆分,同时跟新拆分出来的ID记录
在存储过程中,怎么去同时跟新ID为 如:'4' 或'4,5'或 '4,5,6' 等不定由逗号隔开拼接出来的一个字符串中包含的ID的记录, 即:如果字符串为‘4,5‘ ,我就要跟新ID=4,ID=5的这两条记录;
如果字符串为‘4,5,6‘ ,我就要跟新ID=4,ID=5,ID=6的这三条记录


------解决方案--------------------
SQL code
declare @str varchar(20)='4,5,6'
update tb set xx=xx where charindex(','+rtrim(id)+',',','+@str+',')>0

------解决方案--------------------
探讨

四楼的我试过了,可以满足跟新ID在那字符串中的记录,但若各条记录的跟新都不同呢?怎么解决?

------解决方案--------------------
探讨

7楼的所说的还是跟四楼的一样啊,没解决 每条记录跟新的值不同的问题,4楼只是解决可以更新我所说的字符串中的ID的记录,但没解决那些ID更新不同的情况!不知道不是我没描述清楚不,比如:要更新的ID的字符串为"4,5”,那我就要更新ID=4,ID=5这两条记录,但ID=4的这条记录中我要更新的字段Name="张三",而ID=5的这条记录我要更新的Name="李四",这种情况怎么解决?