MySQL搜索一个字母的单词

MySQL搜索一个字母的单词

问题描述:

我在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 

任何帮助,将不胜感激。

谢谢

在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