2015-10-16 111 views
2

如果我搜索的术语'将走',那么结果将显示所有与搜索项相似的条目。 例如:MYSQL FULLTEXT搜索无法正常工作

 
Search Term: will walk 
Records: 
1. It will walk. 
2. tomorrow rain will walk. 
3. it should walk 
4. walk on 
5. tomorrow bus will walk. 
Result: 1, 2, 5 

我会尝试与查询SELECT * FROM user WHERE MATCH(name) AGAINST('+will +walk' IN BOOLEAN MODE);但我得到的所有条目(1,2,3,4,5)的结果。

+0

它工作正常,因为[**'will'** is stopword](https://dev.mysql.com/doc/refman/5.6/en/fulltext-stopwords.html),并在[boolean全文搜索](https://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html)。 – Rimas

+0

@Rimas,是的,你是对的。它的工作正常。谢谢 :) 。 – user2349080

回答

0

全文搜索添加%作为分隔符为每一个字。您的查询应该是这样的:

SELECT * FROM user WHERE name LIKE '%will%walk%' 

这将返回在name列的话步行所有记录。即使是will be walk

+0

我已经使用过这样的查询:'SELECT * FROM test WHERE MATCH(name)AGAINST('BOOLEAN MODE'中的'%will%walk%');'。但它会返回所有记录(在问题中提到)。 – user2349080

+0

@ user2349080我误解了你的问题。你想返回所有记录还是只有1,2,5? – RubahMalam

+0

正确答案是1,2,5。 – user2349080