2012-06-11 55 views
0

**編輯* *全文搜索未發現任何

行,所以我找到了problam,這是搜索的分詞長度爲4,我改成了3,但現在它只能找到第1點的數據,而不是行2數據藏漢...

-----原題:----

我有我的phpmyadmin像MyISAM表這個:

table name: `users` 
coulmn name: `name` 
row 1 data: 'dan' 
row 2 data: 'dan252' 

(這只是它的重要組成部分)

現在的名字是全文索引字段,使用此查詢即時通訊:

SELECT * FROM `users` WHERE MATCH(`name`) AGAINST('dan') 

但phpmyadmin的回報:

MySQL returned an empty result set (i.e. zero rows). (Query took 0.0004 sec) 

爲什麼它找不到任何東西?

* EDIT *

行,所以我發現problam,它是用於搜索是4分鐘字長,我將其改爲3,但現在它只能找到行1個數據和不是第2行的數據...

回答

1

MATCH僅適用於列與FULLTEXT indicing。 FULLTEXT指示只適用於MyISAM表格。其次,'dan'可能是too short,使用MATCH

第三,如果您的搜索字詞與您的行的50%以上相匹配,則該字詞被認爲太常見,並且搜索失敗。

請仔細閱讀here

+0

請閱讀編輯 –

0

試試這個。

SELECT * FROM users WHERE MATCH(name)AGAINST('dan');

我想你在表名和MATCH中使用了撇號。這是錯誤的。試試吧,讓我知道這是否有效。

0

我想你試圖用'dan'返回所有內容 你可以試試LIKE命令。

SELECT * FROM users WHERE name LIKE '%dan%' 

這將返回「丹」和「dan252」和(如果他是在表)「123dan456」。

您也可以嘗試

SELECT * FROM users Match(name) AGAINST('+dan*') 

應該返回同樣的事情,可能是更有效的。 如果你只是試圖使用'丹'然後用@Kirishna說。

SELECT * FROM users WHERE MATCH (name) AGAINST ('dan') 
+0

我想使用全文不不LIKE,第一個返回語法錯誤,secound一個返回空結果 –

+0

您可以嘗試'SELECT * FROM users WHERE CONTAINS(name,「dan」)'我從[Microsoft SQL](http://msdn.microsoft.com/en-us/library/ms142571.aspx),因此可能無法正常工作。 – Bonzo

+0

返回空結果以及 –