日期:2014-05-17  浏览次数:20470 次

sql多个关键字搜索,单个关键字出现的次数排序
本帖最后由 wyj92 于 2013-11-13 15:14:41 编辑
最近项目需要实现如下:
    有一个关键字库 ,在某一条数据中匹配关键字库中的关键字 ,在当前数据中出现的关键字最多的前三个,然后用这三个关键字在同一张表中查找出现类似出现关键字的数据 (取出现次数接近的数据) 有没有懂的啊?帮帮忙给给解决的方法先谢谢了 

                                                          在线等答:2596062639
sql关键字 sql全文检索

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

引用
yupeigu


我这个还可以弄吗?


是这样吗:

 create table key_word(word nvarchar(30))
 
 insert into key_word
 select 'JAVA' union all
 select 'PHP' union all
 select 'asp' union all
 select 'aspx' union all
 select 'FLEX'
 go
 

drop table tb
go
 
create table tb(id int,content nvarchar(max))
 
 
insert into tb
select 5 , 'ASP,PHP用来做网页都不错ASP,做网页都不错ASP,做网页都不错ASP,做网页都不错ASP,aspx是动态网页'
union all select 6, 'ASP,PHP用来做网页都不错ASP,做网页都不错ASP,做网页都不错ASP,做网页都不错ASP,做网页都不错ASP,做网页都不错ASP,做网页都不错ASP,aspx是动态网页,aspx是动态网页PHP、PHP'
union all select 7, 'ASP,PHP用来做网页都不错ASP,做网页都不错ASP,aspx是动态网页'
go




;with t
as
(
select id,
       content,
       kw.word,
       dbo.f_searchSTR(tb.content,kw.word) 次数
from tb
cross join key_word kw
where kw.word in ('asp','aspx','php')
group by id,content,kw.word
),

tt
as
(
select --max(次数) over(PARTITION by id) as max_count,
       min(次数) over(partition by id) as min_count,
       
       id,content,word,次数
from t
)

select id,content
from
(