Match
/ Against
如果我在查询中传递唯一值则返回true,如果我传递值,则返回0,该值存在于多行中。
SELECT MATCH(b.branch_name)
AGAINST ('Men' IN NATURAL LANGUAGE MODE ), branch_name
FROM `branch` AS `b` WHERE 1
Table Data:
id | branch_name
--------------------
1 | Men
2 | Beauty
3 | Women
如果我通过MATCH(b.branch_name) AGAINST ('Men' IN NATURAL LANGUAGE MODE )
为所有行返回0,
如果我通过MATCH(b.branch_name) AGAINST ('Women' IN NATURAL LANGUAGE MODE )
返回> 0 'beauty'
任何人都可以帮助我,我错了吗?
答案 0 :(得分:2)
有一个名为ft_min_word_len
的系统变量,其默认值为4(参见here)。
这意味着忽略少于四个字母的单词 - 不包含在索引中。索引中没有条目;没有返回任何行。
重置该值,然后重建索引,以便“men”将在索引中。然后你的查询就可以了。