2009-08-23 108 views
1

我有下面的代码搜索MySQL查询

SELECT * FROM table WHERE MATCH(message) AGAINST ('Hello*') 

如果消息字符串是这样

"HelloWhatsHappening" 

它dosent工作返回任何

但如果我有

"Hello WhatsHappening" 

工作正常

它也将工作如果字符串是这样的:

"Hello= WhatsHappening" 

什么想法?

+0

我应该使用一个Like查询通过拆分上面的所有单词到一个单词的数组进行搜索。但是,你如何匹配那些最强的? – 2009-08-23 02:02:43

回答

2

您需要用通配符指定查询,并添加“IN BOOLEAN MODE”语句。就像这样:

SELECT * FROM table WHERE MATCH(message) AGAINST ('Hello*' IN BOOLEAN MODE) 

您还可能有麻烦搜索你好,因为它是在MySQL中stop words之一。所以如果它只是你好,它不会索引这个单词,但如果它是单词“HelloWhatsHappening”,它将会索引它。

+0

ooo im抱歉..我忘记了这个问题..它已经这么做:( – 2009-08-23 02:12:59

+0

我添加了BOOLEAN模式但它不工作 – 2009-08-23 02:14:57

+0

等待我想ima twonk:D ...在我的表中存储Hello像这样的“你好:”但是有没有一个原因,为什么不工作 – 2009-08-23 02:23:56