MySQL如何通过匹配查询字符串与全文搜索进行排序

时间:2019-06-26 12:27:31

标签: mysql sql sql-order-by match-against

例如,我有桌子:

Id Name
1  bcd def abc
2  def abc
3  abc

我通过类似布尔型全文本搜索的方式进行搜索

SELECT * FROM table WHERE MATCH (name) AGAINST ('abc*' IN BOOLEAN MODE)

如果abc是文本结果顺序的第一个,则如何排序,如下所示:

Id Name
1  abc
2  def abc
3  bcd def abc

如果'abc'位置不是头部,则将被压低

2 个答案:

答案 0 :(得分:1)

您可以使用locate()

order by locate('abc', name)

答案 1 :(得分:0)

您可以使用

ORDER BY LENGTH(`name`) ASC