MySQL全文搜索AND运算符

时间:2017-02-04 16:54:13

标签: mysql full-text-search innodb

是否可以在InnoDB引擎中使用AND运算符进行自然语言模式的完整测试搜索?我的意思是如下所示的查询,但是根据需要包含所有单词:

SELECT *, MATCH (body)  AGAINST ('mysql database') AS score FROM post ORDER BY score DESC;

对于此查询,我想要返回所有匹配两个单词的记录:' mysql'和'数据库'。我知道我可以使用+和BOOLEAN模式,但它会导致其他问题,比如我想忽略的其他运算符(*, - ,"' ..)

1 个答案:

答案 0 :(得分:1)

添加一个WHERE子句,分别测试每个单词:

SELECT *, MATCH (body)  AGAINST ('mysql database') AS score 
FROM post 
WHERE MATCH(body) AGAINST ('mysql') AND MATCH(body) AGAINST('database')  
ORDER BY score DESC;