如何根据若干关键字搜索最匹配前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