接收一个字符串s,如果字符串s含有key_name字段内容,则替换成带有key_link形式的字符串。
算法: 定位某关键字Key(读取PE_KEY_LINK)
计算key出现的总次数
循环遍历key 并记录序号
第一个最后一个,一定加链接。
中间如果数字差距大,(>3)随机选择一个加链接。
循环OK!
算法: 定位某关键字Key(读取PE_KEY_LINK)
计算key出现的总次数
循环遍历key 并记录序号
第一个最后一个,一定加链接。
中间如果数字差距大,(>3)随机选择一个加链接。
循环OK!
(
id int identity primary key,
key_name varchar(200),
key_link varchar(200)
)
目标:接收一个字符串s,如果字符串s含有key_name字段内容,则替换成带有key_link形式的字符串。
如:算法: 定位某关键字Key(读取PE_KEY_LINK)
计算key出现的总次数
循环遍历key 并记录序号
第一个最后一个,一定加链接。
中间如果数字差距大,(>3)随机选择一个加链接。
循环OK!
go
create table PE_KEY_LINK
(
id int identity primary key,
key_name varchar(2000),
key_link varchar(2000)
)if object_id('p_setLink') is not null drop proc p_setLink
go
create proc p_setLink(@s varchar(1000))
as
begin
create table #t (id int identity,keyspit varchar(200))
declare @sql varchar(8000)
declare @id int,@key_name varchar(200),@key_link varchar(200),@key_name_new varchar(1000)
declare cur_1 cursor for select id,key_name,key_link from PE_KEY_LINK
open cur_1
fetch next from cur_1 into @id,@key_name,@key_link
while @@fetch_status=0
begin
set @key_name_new=''
set @sql='select '''+replace(@key_name,@s,@s+''' union all select ''')+'A'''
insert #t exec(@sql) if @@identity-1>5
update #t set keyspit=replace(keyspit,@s,@key_link) where id=1 or id=@@identity-1
or id=(select top 1 id from #t where id>1 and id<@@identity order by newid())
else
update #t set keyspit=replace(keyspit,@s,@key_link) where id=1 or id=@@identity-1
select @key_name_new=@key_name_new +keyspit from #t order by id
update PE_KEY_LINK set key_name=stuff(@key_name_new,len(@key_name_new),1,'') where id=@id
truncate table #t
fetch next from cur_1 into @id,@key_name,@key_link
end
close cur_1
deallocate cur_1
endinsert PE_KEY_LINK
select 'sql server 要好好学','<a herf=http://www.mss.com>sql server</a>' union all
select 'sql server 要好好学sql server 要好好学','<a herf=http://www.mss.com>sql server</a>' union all
select 'sql server 要好好学sql server 要好好学sql server 要好好学sql server 要好好学sql server 要好好学','<a herf=http://www.mss.com>sql server</a>' union all
select 'sql server 要好好学sql server 要好好学sql server 要好好学sql server 要好好学sql server 要好好学sql server 要好好学','<a herf=http://www.mss.com>sql server</a>' union all
select 'sql server 要好好学sql server','<a herf=http://www.mss.com>sql server</a>'truncate table PE_KEY_LINKp_setLink 'sql server'select * from PE_KEY_LINK/*id key_name key_link
----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 <a herf=http://www.mss.com>sql server</a> 要好好学 <a herf=http://www.mss.com>sql server</a>
2 <a herf=http://www.mss.com>sql server</a> 要好好学<a herf=http://www.mss.com>sql server</a> 要好好学 <a herf=http://www.mss.com>sql server</a>
3 <a herf=http://www.mss.com>sql server</a> 要好好学sql server 要好好学sql server 要好好学sql server 要好好学<a herf=http://www.mss.com>sql server</a> 要好好学 <a herf=http://www.mss.com>sql server</a>
4 <a herf=http://www.mss.com>sql server</a> 要好好学<a herf=http://www.mss.com>sql server</a> 要好好学sql server 要好好学sql server 要好好学sql server 要好好学<a herf=http://www.mss.com>sql server</a> 要好好学 <a herf=http://www.mss.com>sql server</a>
5 <a herf=http://www.mss.com>sql server</a> 要好好学<a herf=http://www.mss.com>sql server</a> <a herf=http://www.mss.com>sql server</a>(所影响的行数为 5 行)*/
是否对症,lz要加分了