多个关键字的匹配度查询有关问题,求SQL语句
搜索的时候,如果关键字是2个以上的话,怎么样才能按匹配程度来排序呢?
就是说符合的关键字越多,显示就越靠前~~
我想了个笨办法,不知道行不行
多个关键字的匹配度查询问题,求SQL语句 搜索的时候,如果关键字是2个以上的话,怎么样才能按匹配程度来排序呢? 就是说符合的关键字越多,显示就越靠前~~ 我想了个笨办法,不知道行不行,就是计数mssql 按关键字排序,符合1次就加1,最后按计数的大小排序,是不是太笨了…… 期待高手解答,谢谢了~ ------解决方案-------------------- select * from t where parindex('%中国%',Name)>0 order by rindex('%中国%',Name) asc ------解决方案-------------------- SQL code declare @a table(a varchar(100))insert @a select '中华人民共和国'insert @a select '中华人民'insert @a select '中国'declare @key table(a varchar(100))insert @key select '中'insert @key select '华'insert @key select '民'insert @key select '国'select a from(select a.a a,sum(case when charindex(b.a,a.a)>0 then 1 else 0 end) x from @a a,@key b group by a.a)aaorder by x desc (编辑:海南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |