MySQL Can’t find FULLTEXT index matching the column list (indexes is set)错误


<!–

–>

MySQL Can’t find FULLTEXT index matching the column list (indexes is set)错误

在使用MySQL数据库时,经常会遇到这样的错误提示:“Can’t find FULLTEXT index matching the column list (indexes is set)”。这个错误提示的意思是MySQL无法匹配所使用的列和FULLTEXT索引,因此无法进行相应的查询,导致查询失败。

阅读更多:

什么是FULLTEXT索引

FULLTEXT索引是MySQL提供的一种全文索引,它可以让用户快速的对文本字段进行全文搜索。在使用FULLTEXT索引时,需要注意以下几点:

(adsbygoogle = window.adsbygoogle || []).push({});

  1. 只有CHAR、VARCHAR和TEXT类型的字段才能建立FULLTEXT索引;
  2. 每张表最多只能建立一个FULLTEXT索引;
  3. FULLTEXT索引只能用于MyISAM引擎;

问题解决方法

当MySQL无法匹配所使用的列和FULLTEXT索引时,我们可以通过以下几种方法来解决:

方法一:修改查询语句

可以检查查询语句中使用的列是否和FULLTEXT索引中的列一致,如果发现不一致,可以针对性的进行修改。例如:

SELECT * FROM my_table WHERE MATCH (col1, col2) AGAINST ('search text');

以上查询语句中,FULLTEXT索引中只包含一个名为‘col1’的列,因此可以将查询语句中的‘col2’列删除,再进行查询。

方法二:重新建立FULLTEXT索引

如果上述方法无效,可以尝试重新建立FULLTEXT索引。可以先删除原有的FULLTEXT索引,再重新建立一个匹配所使用的列的FULLTEXT索引。例如:

ALTER TABLE my_table DROP INDEX my_fulltext_index;

ALTER TABLE my_table ADD FULLTEXT my_fulltext_index (col1, col2);

方法三:检查表结构

如果上述方法仍然无效,可以检查表结构是否正常。可能是由于表结构发生了改变导致FULLTEXT索引失效,可以尝试重新建表。

总结

以上就是解决 Can’t find FULLTEXT index matching the column list (indexes is set)问题的方法。在使用FULLTEXT索引时,需要注意建立索引的规则,以免在查询时出现问题。同时,在出现问题时我们可以采用多种方法进行解决,让查询更加顺利。

(adsbygoogle = window.adsbygoogle || []).push({});