0

好的,我有一张这样的表:http: //i.imgur.com/IPUSe.png

在此处输入图像描述

我试图在combined_namesMySQL 搜索查询的列中找到匹配项。

我用它来使用这个查询进行搜索:SELECT * FROM players WHERE match(combined_names) against('Lin')

在 phpmyadmin 中运行查询后,我得到以下信息:MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0005 sec )

嗯...让我们尝试不同的行!SELECT * FROM players WHERE match(combined_names) against('Dejan')给了我Showing rows 0 - 0 ( 1 total, Query took 0.0007 sec) [id: 1 - 1]所以它有效!

好吧,让我们尝试Lin同时更改combined_namesforename到 ...Tester所以我们这样做:SELECT * FROM players WHERE match(combined_names) against('Tester')

我得到了它?我得到:Showing rows 0 - 0 ( 1 total, Query took 0.0006 sec) [id: 3 - 3]

奇怪的。更改Lin为后Tester,它可以工作...为什么。

4

1 回答 1

1

您需要设置ft_min_word_len =3,重新启动 mysql 服务器并重建索引。

ft_min_word_len 默认为 4

用于REPAIR TABLE tbl_name QUICK重建全文索引。

于 2013-01-14T01:10:27.880 回答