2012-10-06 102 views
0

是否可以匹配以搜索字符串開頭或結尾的單詞?MySQL:布爾全文搜索以x開頭/結尾的單詞?

例子:

我想找到包含單詞「菠蘿」一欄。如果可能的話,我想通過搜索「鬆」或「蘋果」來找到該行。

可以這樣做嗎?

當前的代碼,如果它可以幫助:

SELECT id 
FROM movies 
WHERE MATCH (movies.movie_title) 
AGAINST ('+word1 +word2' IN BOOLEAN MODE) 
+0

yup - http://dev.mysql.com/doc/refman/5.1/en/regexp.html – ethrbunny

+0

你能舉個例子嗎?編輯:我知道這是可能的使用LIKE,並且它似乎也可以使用REGEXP,但是如何在全文查詢中使用它?看到TS,我用代碼更新了。 – qwerty

回答

0

對於示例:

select 'pineapple' regexp 'pine|apple'; 

因爲如果你可以使用任何你想要的正則表達式準備好的語句,你可以把更一般的情況查詢生成時的字符串。如果有多種事情要與您匹配,您可以構建複雜的表達式,或者對結果和循環進行子選擇,或者自我連接。有很多方法可以解決這個問題。

+0

這有效,但它不是全文搜索,是嗎?如果我的數據庫不是那麼大,我會使用它,但是恐怕從長遠來看,隨着數據庫的不斷增長,這將會非常緩慢。 – qwerty

+0

它會在選定的字符串中找到正則表達式的任何實例。您可以使用正則表達式中的其他參數來限制它(字符串的開始/結束,實例的數量等) – ethrbunny