日期:2014-05-18  浏览次数:20471 次

如何根据若干关键字搜索最匹配前10条记录
我想做相关文章的功能,每篇文章在添加到blog时都有用户手工填写的关键字。
那么一篇文章显示时我想找出和该文章最匹配的前十条相关文章。  
我的表有个字段叫           keyword     里面存放了该文章的关键字   如


"计算机,Delphi,开发 "      


在搜索时如果某篇文章的keyword字段完全含有这三个关键字则排第一
如果只含其中两个则排第二,其它依此类推,最好情况下能用一句sql语句解决,如果没办法则速度最快的语句也可
谢谢诸位赐教


------解决方案--------------------

select top 10 *,ob=case when col like '%三个字% ' then 1 else 2 end from tablename where colname like '%两个字% ' order by ob
------解决方案--------------------
如果不拆分.

select title , count(*) cnt from
(
select * from tb where keys like '%计算机% '
union all
select * from tb where keys like '%Delphi% '
union all
select * from tb where keys like '%开发% '
) t
group by title
order by cnt desc