2014-04-16 35 views
0

我設計了一個用於全文搜索目的的myisam表。全文搜索不適用於mysql中的varchar

small part of table

我定義全文爲customer_code列。 customer_codevarchar(20)。它只搜索「1234」和「0011」,但不搜索「123」和「456」。

我的SQL查詢:

SELECT * 
FROM tbl_customer 
WHERE MATCH(tbl_customer.customer_code) AGAINST('123') 

我必須確定一些呢?

+0

操作系統你在哪個配置文件? –

+0

現在我正在使用Windows 7的最終(32位)。 – RamGrg

+0

與wamp服務器? –

回答

0

它可能不是因爲字長的工作正因此,在Debian的上的ft_min_word_len

http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html

指定/ Ubuntu的它通常/etc/mysql/my.cnf

你需要在那裏設置最小長度。在你的情況下,我想它的4,所以你需要設置它比這少。

確保重置字長後重新啓動mysql。另外,您可能需要刪除索引並重建或修復表格。

更多在那裏有不同的方式可以使用通配符在全文搜索。檢查以下這可能會幫助你。

http://forums.mysql.com/read.php?107,113504,113504

在WAMP,你可以找到WAMP嚮導或

\wamp\bin\mysql\mysql{version}\my.ini