2009-08-23 240 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