我有这张桌子上有歌曲标题,艺术家等。
| id | artist | title | search_tags |
| 1 | miley cyrus | 23 | miley cyrus 23 |
这是我的疑问:
select * from music where match(search_tags) against ('+$search_value*' IN BOOLEAN MODE)
当我搜索:miley时,它工作得很好,但是当search_tags = 23时它没有显示任何结果
注意:我在Windows 10和MySQL上使用了InnoDB和ft_min_word_len=1的InnoDB 5.6
发布于 2014-10-29 20:23:34
搜索"23“时不会工作,因为键的长度很小。默认情况下,MySQL将键存储在全文索引中,最小为4个字符。您需要将其更改为1或2才能使查询正常工作。
你需要做的是
再次运行查询,它应该可以工作:)
祝好运
发布于 2020-07-29 14:38:03
注意,默认情况下,ft_min_word_len是4。令牌500的长度为3。因此,它将根本不被索引。你必须做三件事:
步骤01 :打开mysql文件夹中的init文件,将其添加到\bin\mysql\mysql5.7.24
innodb_ft_min_token_size =1
步骤2:重新启动mysql
步骤03 :重新索引模型表中的所有索引,只需删除并添加全文索引即可
https://stackoverflow.com/questions/26639511
复制相似问题