我在我的应用程序中使用了类似查询和全文搜索查询
就像查询给我想要的结果,但全文查询没有给出正确的值 像查询 -
Select * from tablename where colname like '% value %'
select * from tablename where MATCH(colname) AGAINST(' value ' IN BOOLEAN MODE)
就像查询给我正确的结果,大约1000行,但第二个查询给我没有结果。虽然两个查询都相似,搜索同一个单词并在同一个表中同一列 请在第二个查询中突出显示我错误的人
答案 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引擎。