MySQL与斜杠匹配

时间:2012-10-29 08:14:22

标签: mysql escaping match slash against

我在搜索包含斜杠(例如ac / dc)且mysql匹配的产品时遇到了一些问题。

似乎有某种设置影响了这一点。在我的windows'xammp上使用默认设置,每个都很棒:

MATCH (content) AGAINST ('+ac/dc*' IN BOOLEAN MODE)

MATCH (content) AGAINST ("+ac/dc*" IN BOOLEAN MODE)

MATCH (content) AGAINST ('"+ac/dc*"' IN BOOLEAN MODE)

MATCH (content) AGAINST ("'+ac/dc*'" IN BOOLEAN MODE)

MATCH (content) AGAINST ('+ac\/dc*' IN BOOLEAN MODE)

但是它们都没有在我们的Linux系统上的生产服务器上工作(我不知道哪个发行版,但它在plesk下)。

我的意思是“不工作”。查询返回0行。生产服务器的ft_min_word为2。

2 个答案:

答案 0 :(得分:0)

查看XAMP和生产服务器中的存储引擎。全文搜索http://dev.mysql.com/doc/refman/5.1/en/fulltext-restrictions.html有限制。此外,表定义必须与全文搜索匹配。

虽然双引号是,但斜杠不是特殊字符。因此,+ac/dc*必须提供与"+ac/dc*"不同的结果集。

除此之外,我能想到的唯一区别是桌面内容不同。

答案 1 :(得分:0)

这是一个服务器问题,直到今天我仍然不知道如何解决它,我所做的是改变了整个系统的工作方式。

我有一个搜索表,我存储搜索词,在那里我删除斜线,因此AC / DC变为ACDC,在搜索时我修改查询以再次删除斜杠,以便它尝试匹配ACDC并找到正确的行。 / p>