请求关于数据库字段更新的问题

[复制链接]
查看11 | 回复1 | 2017-7-25 17:34:38 | 显示全部楼层 |阅读模式
是一个Wap网站栏目:
ID,UserCode,Content(nvarchar(2000)),ParentId,GroupId(varchar(50))....
由于以前没有对栏目设置权限,在内容字段里可能有其他栏目的链接地址,类似:index_栏目ID.wml;index_栏目ID.html(index_23.wml;index_23.html)
现在给栏目加上了权限设置功能,即:如果GrpupID不为空则该栏目是需要权限才能访问的页面,所以别的栏目的Content字段中如果有该栏目的链接(例如:index_23.wml),则需要替换成 index.asp?UserCode=&ID=
表中存在几百万的数据,每个用户(UserCode)可能建500-1500个栏目(即500-1500条记录),请问大家有什么好办法可以实现,并且效率性能最优??
我有一个简单的办法就是写一个SQL函数来处理:
Update table
Set Content = myfun(Content)
where UserCode=? and Content like N'%index_%'
然后在myfun函数里把index_栏目ID的数字ID找出来,再查找这个栏目的记录,如果是设置了权限的栏目,则替换链接地址。

请大家赐教更简洁更高效的办法,谢了!
回复

使用道具 举报

千问 | 2017-7-25 17:34:38 | 显示全部楼层
数据类似这样的:
表A:
ID,UserCode,Content(nvarchar(2000)),ParentId,GroupId(varchar(50))...
1,'abc',' 欢迎访问中国移动通信集团公司
',0,''
4,'abc','食在惠阳 [url=]住在惠阳 [/url]....',1,''
5,'abc','住在惠阳...',1,'12,34,33'
6,'abc','星级酒店',
1,''
7,'abc','游在惠阳 [url=]1 [/url] [url=]1 [/url]',1,''
更新后,ID为4,7的结果是:
4,'abc','食在惠阳 [url=]住在惠阳 [/url]....',1,''
因为index_5.wml中的5表示链接到ID为5的栏目,而这个栏目的GroupId为'12,34,33',表示启用了权限,所以要替换 
7,'abc','游在惠阳 [url=]1 [/url] [url=]1 [/url]',1,''
由于ID为6的栏目没有启用权限设置,即GroupId为空,则index_6.wml不需要替换
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行