2010-10-18 72 views
3

我用mysql對陣查詢我的搜索查詢像這樣的比賽的MySQL對查詢

MATCH(film_name) AGAINST ('the vacation' IN BOOLEAN MODE). 

但以前我用這一個

film_name like '%the vacation%' 

所以我的問題是,我收到正確的結果現在通過使用匹配和反對,但問題是,當我在那裏使用我可以在搜索字符串前後使用%符號,所以如果搜索字符串出現在字符串中,那麼它返回結果,所以PLZ告訴如何寫我的" MATCH(film_name) AGAINST ('the vacation' IN BOOLEAN MODE) "這樣它也表現爲``'%'。

如果文件名是「rocketsingh」

然後,如果我跑film_name like '%rocket%'話,就說明我的結果

,但如果我跑MATCH(film_name) AGAINST ('rocket' IN BOOLEAN MODE)那麼就不會顯示出任何結果。請建議做什麼。

+0

在布爾模式下搜索「度假」將搜索包含「the」或「vacation」的film_name。這可能不會給你你期望的結果...... – thetaiko 2010-10-18 13:31:13

回答

0

答案是:你不能。 MATCH AGAINST運算符匹配單詞,而不匹配字符串。兩者有區別。還請注意,您的示例還將匹配vacation,the,vacation thethe something something vacation等。您應該閱讀here您可以執行哪些搜索。

如果您不想進行單詞搜索,您應該堅持使用LIKE的第一個選項。

2

MATCH命令只允許前綴通配符,但不允許後綴wilcards。由於單個單詞被編入索引,所以後綴通配符不可能像索引一樣管理。您不能從索引立即檢索*假期,因爲左側字符是索引中最重要的部分。