我有下面的代码搜索MySQL查询
SELECT * FROM table WHERE MATCH(message) AGAINST ('Hello*')
如果消息字符串是这样
"HelloWhatsHappening"
它dosent工作返回任何
但如果我有
"Hello WhatsHappening"
工作正常
它也将工作如果字符串是这样的:
"Hello= WhatsHappening"
什么想法?
我有下面的代码搜索MySQL查询
SELECT * FROM table WHERE MATCH(message) AGAINST ('Hello*')
如果消息字符串是这样
"HelloWhatsHappening"
它dosent工作返回任何
但如果我有
"Hello WhatsHappening"
工作正常
它也将工作如果字符串是这样的:
"Hello= WhatsHappening"
什么想法?
您需要用通配符指定查询,并添加“IN BOOLEAN MODE”语句。就像这样:
SELECT * FROM table WHERE MATCH(message) AGAINST ('Hello*' IN BOOLEAN MODE)
您还可能有麻烦搜索你好,因为它是在MySQL中stop words之一。所以如果它只是你好,它不会索引这个单词,但如果它是单词“HelloWhatsHappening”,它将会索引它。
ooo im抱歉..我忘记了这个问题..它已经这么做:( – 2009-08-23 02:12:59
我添加了BOOLEAN模式但它不工作 – 2009-08-23 02:14:57
等待我想ima twonk:D ...在我的表中存储Hello像这样的“你好:”但是有没有一个原因,为什么不工作 – 2009-08-23 02:23:56
我应该使用一个Like查询通过拆分上面的所有单词到一个单词的数组进行搜索。但是,你如何匹配那些最强的? – 2009-08-23 02:02:43