2012-03-26 64 views
0

好吧,我想實現使用mysql的搜索功能。使用匹配條款在MYSQL中搜索

現在要做到這一點,我必須使用WHERE對陣條款,但問題是,在下面的查詢

$sql = "SELECT * FROM users WHERE MATCH(username) AGAINST('LU' IN NATURAL LANGUAGE MODE)"; 

它會返回行,其中的用戶名匹配「陸」 它不會,如果返回行用戶名即時尋找是'Lucase',但只搜索用戶名中的兩個字符。 這可能是先進的,但即時準備好了,如果有人可以幫助我,非常感謝。

我想我想要做的是搜索匹配字符串中的字符的行。
我希望你明白我在這裏傳達的信息!

回答

1

您可以使用布爾全文搜索。這是一項功能,支持許多不同的操作員。

http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

在你的情況我建議你搜索:

SELECT * FROM users WHERE MATCH(username) AGAINST ('LU*' IN BOOLEAN MODE) 
+0

是否有更多的方式來調整搜索,並使它更好? 就像Facebook的搜索服務,我確定它不僅僅是這個。 – 2012-03-27 04:48:12

+0

也可以如何添加更多的價值來反對() – 2012-03-27 04:51:36

+0

你可以使用像'+ LU * +馬歇爾* -Kurt *'等等。它非常靈活,請閱讀文檔(上面提供)瞭解更多信息。如果你想要更多(和速度),使用獅身人面像。它確實非常快速和堅實。我非常喜歡它。 – 2012-03-27 09:56:34