全文搜索结果类似于Mysql Like'%%'查询

时间:2016-09-13 10:11:05

标签: mysql full-text-search sql-like

我们正在寻找提供like '%%'查询结果但使用全文搜索MATCH AGAINST

的mysql查询

例如

Select id,name from table where jobtitle like '%java software engineer in google%'

它提供了包含google

中的行java软件工程师的所有行

但是如果我们使用下面的mysql查询,那么它会给出不同的结果

Select id,name from table
where MATCH(jobtitle) AGAINST ('+java software engineer in google' IN BOOLEAN MODE)

它提供的行包含来自Google软件工程师的任何单词

我想要使用像'%java软件工程师在谷歌%'查询中使用的确切输出。

1 个答案:

答案 0 :(得分:0)

正如Boolean fulltext search上的MySQL文档所示(粗体是我的):

  

布尔全文搜索功能支持以下内容   运营商:[...]

     

"

     

双引号(“"”)字符中的短语匹配   仅键入包含短语字面的行。该   全文引擎将短语拆分为单词并执行搜索   单词的FULLTEXT索引。 非单词字符不一定是   完全匹配:短语搜索只需要匹配包含   与短语完全相同的单词和相同的顺序。对于   例如,"测试短语"匹配"测试,短语"。

     

如果短语中不包含索引中的单词,则结果为   空。由于组合,单词可能不在索引中   因素:如果它们在文本中不存在,则是停用词,或者是   短于索引词的最小长度。

因此,请使用"运算符:

Select id,name from table
where MATCH(jobtitle) AGAINST ('"java software engineer in google"' IN BOOLEAN MODE)

粗体部分包含警告:由于全文索引的性质,结果可能略有不同。