mysql匹配查询

时间:2010-10-18 13:19:26

标签: php mysql

我在搜索查询中使用mysql匹配查询,就像这样

MATCH(film_name) AGAINST ('the vacation' IN BOOLEAN MODE).

但之前我使用过这个

film_name like '%the vacation%'

所以我的问题是我现在通过使用匹配和反对来获得正确的结果但问题是,当我在那里使用时,我可以在搜索字符串之前和之后使用%符号,所以如果搜索字符串在字符串中出现然后它返回结果,因此plz告诉我如何编写我的" MATCH(film_name) AGAINST ('the vacation' IN BOOLEAN MODE) ",以便它也表现得像'%'。

如果文件名是'rocketsingh'

然后如果我运行film_name like '%rocket%',它会显示结果

但如果我运行MATCH(film_name) AGAINST ('rocket' IN BOOLEAN MODE),则不会显示任何结果。请建议做什么。

2 个答案:

答案 0 :(得分:2)

MATCH 命令仅允许带前缀的通配符,但不允许带有后缀的wilcards。由于单个单词被索引,因此无法以通常的方式管理后缀通配符。您无法立即从索引中检索 *假期,因为左侧字符是索引中最重要的部分。

答案 1 :(得分:0)

答案是:你做不到。 MATCH AGAINST运算符匹配单词,而不是字符串。两者之间存在差异。另请注意,您的示例还会匹配vacationthevacation thethe something something vacation等。您应该阅读here您可以执行的搜索。

如果您不想进行单词搜索,您应该坚持使用LIKE的第一个选项。