2015-03-30 153 views
0

我在MySQL中使用BOOLEAN MODE,並希望它返回帶有單字母單詞的結果。MySQL搜索一個字母的單詞

以下SQL適用於C#和C++,但如果用戶搜索C,它也會返回C++和C#。有誰知道我如何才能使它返回包含C的結果?

select 
    jobs.id, 
    MATCH(jobs.job_title,jobs.job_description) AGAINST ('c' IN BOOLEAN MODE) as relevance 
from jobs 
    where jobs.status='on' and MATCH(jobs.job_title,jobs.job_description) AGAINST ('c' IN BOOLEAN MODE) 
    group by jobs.id 
    order by relevance 

任何幫助,將不勝感激。

謝謝

回答

0

在MYSQL中,默認的最小字長是4個字符。你可以在服務器系統變量中修改這個(小心這樣做)。您需要將ft_min_word_len設置爲較小的數字(例如1)。文檔在這裏:http://dev.mysql.com/doc/refman/5.0/en/fulltext-fine-tuning.html和在這裏:http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html

+0

謝謝,但我忘了提到,這一變化已經對服務器,這使得我認爲這是由於我正在運行的SQL查詢。 – V4n1ll4 2015-03-30 17:49:54

+0

如果您使用的是InnoDB,則默認值爲3,並且由不同的VARIABLE設置。 – 2015-03-31 06:00:27