【问题标题】:Mysql how to orderby matching query string with Full-Text Searches MATCH AGAINSTMysql如何通过将查询字符串与全文搜索匹配来排序
【发布时间】:2019-06-26 12:27:31
【问题描述】:

例如我有桌子:

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' 位置不是头部,则会被向下推

【问题讨论】:

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


    【解决方案1】:

    你可以使用locate():

    order by locate('abc', name)
    

    【讨论】:

    • 我刚刚试了一下,效果很好,非常感谢@Gordon
    【解决方案2】:

    你可以使用

    ORDER BY LENGTH(`name`) ASC
    

    【讨论】:

    • 谢谢你,我可以用另一种方式使用它:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 2020-04-18
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多