mySQL MATCH AGAINST包含字符串

时间:2012-06-08 10:42:17

标签: mysql sql database match

所以我遇到了mysqls匹配的问题。

我需要做这样的事情:

SELECT somefield FROM my_table WHERE MATCH(somefield) AGAINST ('some 2 x 3');

“2 x 3”是我正在寻找的东西。但问题是mysql搜索每个单词所以它将搜索'some','2','x'和'3',因为我无法在我的mysql设置中更改ft_min_word_len这只是不起作用而忽略任何东西少于2个字符。

所以我想做的是在查询中对'2 x 3'位进行分组。 所以它可能会像这样出来???

SELECT somefield FROM my_table WHERE MATCH(somefield) AGAINST ('some {2 x 3}');

这将搜索“some”和“2 x 3”

如果可能的话,我怎么可能这样做?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

似乎全文不适合您的请求。 MySQL不会将短语2 x 3编入索引,甚至也不会对单词some编制索引,因为它位于停用词列表中。我建议您使用OR somefield LIKE '%some 2 x 3%'子句扩展查询,以处理全文搜索不够的情况。