【问题标题】:MySQL search one letter wordMySQL搜索一个字母的单词
【发布时间】:2015-03-30 17:39:05
【问题描述】:

我在 MySQL 中使用 BOOLEAN MODE,并希望它返回一个字母单词的结果。

以下 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 sql boolean


    【解决方案1】:

    在 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 查询。
    • 如果你使用InnoDB,默认为3,由不同的VARIABLE设置。
    猜你喜欢
    • 2010-12-07
    • 1970-01-01
    • 2012-10-14
    • 2011-03-21
    • 1970-01-01
    • 2017-07-14
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多