2012-06-01 77 views
1

我使用MATCH AGAINST來針對數據庫中的多個字段進行搜索,但遇到了結果問題。MySQL MATCH AGAINST的問題

查詢是:

MATCH(productname, stockcode, productdescription, additional_1, additional_2, additional_3, additional_4, additional_5, additional_6, additional_7, additional_8) AGAINST ('red* tile*' IN BOOLEAN mode) 

從查詢,我想這兩個「紅色%」或「瓦%」的結果,但此函數返回這裏所說的「必要」的記錄被包括在內,這是我不想要。

可以這樣做嗎?

+0

不要返回的記錄包含'瓦*'? – Quassnoi

回答

2

最有可能的是,您將ft_min_word_len設置爲默認值4

red在此設置中未獲得索引或匹配,只是在查詢中被忽略。

ft_min_word_len更改爲更低的值,如果您想匹配red(需要重建索引,如果有的話)。

請參閱this fiddle

更新:

如果你想匹配的兩個單詞,用這個:

AGAINST ('+red* +tile*' IN BOOLEAN mode) 
+0

我將此值更改爲2,但獲得了相同的結果... – JezB

+0

@JezB:如果您在字段上具有全文索引,則需要重建它。 – Quassnoi

+0

這是修復它 - 謝謝你!現在只需把數據排序:) – JezB