假设有一个名为'tbl‘的表,其中有一个名为'name’的列。我想搜索这个字段,但是情况应该是这样的。
简单地说,我想订购搜索结果以满足以下要求。
举个例子,如果关键词是“城市”,结果应该是下面的顺序。
安伯城是我最喜欢的电影。
大城市
我的城市是伦敦
这是座城市
我名单上的最后一个城市是波士顿
我住在城里
容量某物所能包含的最大容量
电是电的动力来源我的电费太高了
这台电梯能容纳十人
发布于 2016-10-06 03:05:47
这有点棘手。但你可以这样做:
order by locate(concat(' ', city), concat(' ', column)),
locate(city, column)
第一个条件与单词的开头相匹配--假设一个单词以空格开头。locate()
返回位置,因此字符串中越早,搜索越高。
第二个条件匹配字符串中的任何位置。同样的条件成立-在字符串的早期是一个更好的匹配。
https://stackoverflow.com/questions/39886855
复制相似问题