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
例如我有 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