SQL排序需求:
请问如何实现这个功能,模糊搜索一个句子,匹配得单词越多的越靠前?
在一个字段里如果我要查询的三个单词都包含的话,不管顺序,那肯定关联性越强,就应该排在最前面。其次包含两个单词的关联性差一点,就排在后面。只包含一个单词的就排最后。搜索出来结果肯定是关联性越强的排在越前面。
匹配关键词越多越靠前的解题思路
可以用replace将关键词依次替换成空字符,得到一个新句子,计算两个句子的长度,差的越多,说明越匹配,就越靠前。查询代码如下:
select table.*,(length(col)-length(replace(col,'ss','')) as ord from table order by ord
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/1082.html