Mysql 如何通过将查询字符串与全文搜索匹配来排序 MATCH AGAINST

Mysql how to orderby matching query string with Full-Text Searches MATCH AGAINST

例如我有 table:

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'位置不是头会被压下去

您可以使用 locate():

order by locate('abc', name)

您可以使用

ORDER BY LENGTH(`name`) ASC