我正在使用带有全文索引的php + mysql。 我在要搜索的字段中有以下内容:
“你好:这是一个测试!”
“你好,我也是一个考试!”
当我搜索“hello:”时,它会找到两行。 但它应该只找到第一行 - 至少在我搜索“你好%”之前。 结肠似乎不被视为“正常”的角色。
答案 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类型的列(在我的例子中注释)创建一个索引(指数)。