userID,roleID
47 39,34,21,58
48 35,34,58userID roleID
47 39,34,21,58,35
48 把48里roleID里的字段,不重复的更新到47roleID 里。
47 39,34,21,58
48 35,34,58userID roleID
47 39,34,21,58,35
48 把48里roleID里的字段,不重复的更新到47roleID 里。
调试欢乐多
declare @tmp1 varchar(8000)
declare @tmp2 varchar(1000)
select @tmp ='39,34,21,58' --roleid from table where userid = 48
select @tmp1 = '35,34,58'--roleid from table where userid = 47while charindex(',',@tmp1+',') >0 and len(@tmp1) > 0
begin
set @tmp2 = substring(@tmp1,1,charindex(',',@tmp1+',')-1)
if charindex(@tmp2 +',' ,@tmp) = 0
set @tmp = @tmp + ','+@tmp2
set @tmp1 = substring(@tmp1,charindex(',',@tmp1+',')+1,len(@tmp1+',') - charindex(',',@tmp1+','))endselect @tmp/*----------------
39,34,21,58,35
*/