匹配查询不起作用

时间:2014-08-28 16:33:29

标签: mysql sql

我在我的应用程序中使用了类似查询和全文搜索查询

就像查询给我想要的结果,但全文查询没有给出正确的值 像查询 -

Select * from tablename where colname like '% value %'

select * from tablename where MATCH(colname) AGAINST(' value ' IN BOOLEAN MODE)

就像查询给我正确的结果,大约1000行,但第二个查询给我没有结果。虽然两个查询都相似,搜索同一个单词并在同一个表中同一列 请在第二个查询中突出显示我错误的人

1 个答案:

答案 0 :(得分:0)

空格被视为单词终止符,因此' value '将不匹配任何单词,因为其中没有带空格的单词。您应该将第二个查询更改为:

SELECT * 
  FROM tablename 
 WHERE MATCH (colname) AGAINST ('value' IN BOOLEAN MODE);

如果您正在搜索确切的单词'value',那么对于MyISAM表,它是stopword,因此不会为MyISAM表返回任何行。

来自stopword页面:

  

要覆盖MyISAM表的默认禁用词列表,请设置ft_stopword_file系统变量。 (参见第5.1.4节“Server System Variables”)。

或者您可以切换到InnoDB引擎。

相关问题