首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql MATCH返回0,而LIKE返回正确数量的结果?

问Mysql MATCH返回0,而LIKE返回正确数量的结果?
EN

Stack Overflow用户
提问于 2011-11-13 15:43:12
回答 1查看 577关注 0票数 1

我使用以下查询:

代码语言:javascript
复制
SELECT 
  (SELECT COUNT(*) FROM blah
    WHERE MATCH(text) AGAINST ('c')
  ) as count1,
  (SELECT COUNT(*) FROM blah 
    WHERE text LIKE '% c %'
  ) as count2

这将返回:

代码语言:javascript
复制
count1 count2
0      19

为什么会这样呢?

请注意,ft_min_word_len被设置为1,并且已经重建了索引。为什么它不工作?:|

字段blah包含诸如"y c h g b g p q n g j f k t u a w d v b e x c m“之类的字符串。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-13 16:24:40

首先,MySQL全文搜索默认为natural language mode。您需要使用IN BOOLEAN MODE关键字切换到支持*运算符的boolean mode。

其次,全文查询查找包含以字母c开头的单词(属于four or more letters和not in the stopword list)的条目。同时,您的LIKE查询将在任何地方查找包含字母c的任何条目,即使它位于单词中间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8110307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档