【问题标题】:MySQL FULLTEXT won't work with more than one fieldMySQL FULLTEXT 不能使用多个字段
【发布时间】:2023-03-14 07:03:01
【问题描述】:

我有一个沼泽标准 MySQL 全文查询如下:

SELECT * FROM accounts WHERE MATCH(first_name, username) AGAINST ('stringhere')

问题是,它在字段first_name 上找不到全文索引,尽管我现在已经索引了几次。当我这样做时它工作正常:

SELECT * FROM accounts WHERE MATCH(username) AGAINST ('stringhere')

或者这个:

SELECT * FROM accounts WHERE MATCH(first_name) AGAINST ('stringhere')

但不是两个或多个字段。我在这里做错了什么?我已经确保在字段上设置了索引,我什至修复了表,但仍然没有工作:-(

我在使用多个字段时得到这个结果:

Error in query: Can't find FULLTEXT index matching the column list

这令人困惑和恼火,因为正如我所说,我已经明确定义了全文索引。

感谢您的帮助,

詹姆斯

【问题讨论】:

    标签: mysql full-text-search


    【解决方案1】:

    看看输出会很有用

    show create table accounts
    

    我想你有类似的东西

    FULLTEXT(first_name)
    FULLTEXT(username)
    

    而不是

    FULLTEXT(first_name,username) 
    

    【讨论】:

    • 对,你是:FULLTEXT KEY username` (username),FULLTEXT KEY first_name (first_name)`。我添加了我需要的所有字段,现在效果很好。谢谢!
    • 您必须列出要在全文搜索中包含的所有列,正如我在答案的最后一行中写给您的那样。删除您的索引并以正确的方式重新创建一个新索引。
    猜你喜欢
    • 1970-01-01
    • 2019-02-07
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    相关资源
    最近更新 更多