2012-10-06 73 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