|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。关头字
/*--ntext搜刮
按tb表中的keyword在ta中查找content列出每一个keyword在content中的详细地位--邹建2004.07--*/
--测试数据createtableta(idintidentity(1,1),contentntext)inserttaselect我是中国人我是中国人unionallselect中国国民爱中国中国国民爱中国中国国民爱中国中国国民爱中国
createtabletb(keywordnvarchar(100))inserttbselect中unionallselect中国go
/*=================处置========================*/ifexists(select*fromdbo.sysobjectswhereid=object_id(N[序数表])andOBJECTPROPERTY(id,NIsUserTable)=1)droptable[序数表]GO
--为了效力,以是要一个帮助表共同selecttop4000id=identity(int,1,1)into序数表fromsyscolumnsa,syscolumnsbaltertable序数表addconstraintpk_id_序数表primarykey(id)go
--创立处置的存储历程createprocp_searchascreatetable#t(idint,keywordnvarchar(100),positionint)
declare@sNvarchar(4000),@keywordnvarchar(100)declare@idint,@iint,@ilenint
declaretbcursorlocalforselecta.id,b.keyword,position=charindex(b.keyword,a.content)-1,ilen=4000-len(b.keyword)fromtaa,tbbwherecharindex(b.keyword,a.content)>0
opentbfetchtbinto@id,@keyword,@i,@ilenwhile@@fetch_status=0beginselect@s=substring(content,@i+1,4000)fromtawhereid=@idwhile@sbegininsert#t(id,keyword,position)select@id,@keyword,id+@ifrom序数表wherecharindex(@keyword,@s,id)=id
select@i=@i+@ilen,@s=substring(content,@i+1,4000)fromtawhereid=@idendfetchtbinto@id,@keyword,@i,@ilenendclosetbdeallocatetbselect*from#tgo
--挪用示例execp_searchgo
--删除测试droptable序数表,ta,tbdropprocp_search
/*--测试了局
idkeywordposition------------------------------1中31中81中国31中国82中12中62中92中142中172中222中252中302中国12中国62中国92中国142中国172中国222中国252中国30
(所影响的行数为20行)--*/
提供TCP/IP、ODBC和JDBC等多种数据库连接路径。 |
|