mysql全文搜索和特殊字符

时间:2010-05-26 08:09:53

标签: mysql

我正在使用带有全文索引的php + mysql。 我在要搜索的字段中有以下内容:

“你好:这是一个测试!”

“你好,我也是一个考试!”

当我搜索“hello:”时,它会找到两行。 但它应该只找到第一行 - 至少在我搜索“你好%”之前。 结肠似乎不被视为“正常”的角色。

1 个答案:

答案 0 :(得分:0)

这可能很晚,但我无法重现你的问题。

我有一个包含两个条目的表格:

Table: Test
ID Note
-- ---------
1  Hello: it's a test!
2  Hello i am also a test!

如果我运行你的第一次搜索SELECT * FROM test t WHERE Note LIKE "Hello:",我会得到结果中的0行,因为在这种情况下,LIKE会查找与整个字段的完全匹配。

如果我运行你的第二个陈述SELECT * FROM test t WHERE Note LIKE "Hello:%",我会收到一行:

ID Note
-- ---------
1  Hello: it's a test!

您确定已为FULLTEXT索引设置了表格吗?

首先,您的Table引擎必须是MyISAM表。然后你需要为FULLTEXT类型的列(在我的例子中注释)创建一个索引(指数)。