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
谢谢,但我忘了提到,这一变化已经对服务器,这使得我认为这是由于我正在运行的SQL查询。 – V4n1ll4 2015-03-30 17:49:54
如果您使用的是InnoDB,则默认值为3,并且由不同的VARIABLE设置。 – 2015-03-31 06:00:27