SQL排序需求:

请问如何实现这个功能,模糊搜索一个句子, 匹配得单词越多的越靠前

在一个字段里如果我要查询的三个单词都包含的话,不管顺序,那肯定关联性越强,就应该排在最前面。其次包含两个单词的关联性差一点,就排在后面。只包含一个单词的就排最后。搜索出来结果肯定是关联性越强的排在越前面。

匹配关键词越多越靠前的解题思路

可以用replace将关键词依次替换成空字符,得到一个新句子,计算两个句子的长度,差的越多,说明越匹配,就越靠前。查询代码如下:

select table.*,(length(col)-length(replace(col,'ss','')) as ord from table order by ord