mysql查询,使用match和against,使用and或or



是否可以优化查询?

我有一个数据库,id、标题、描述、关键字作为列,我需要按照相关顺序进行查询并得到结果。

我需要使用更多的关键字,我应该使用AND或or还是以其他方式构建查询?

SELECT *, MATCH (title) AGAINST ('earth AND food AND money'
IN NATURAL LANGUAGE MODE) AS SCORE 
FROM _table 
WHERE MATCH (title) AGAINST ('earth AND food AND money'
IN NATURAL LANGUAGE MODE)

SELECT *, MATCH (title) AGAINST ('earth OR food OR money'
IN NATURAL LANGUAGE MODE) AS SCORE 
FROM _table 
WHERE MATCH (title) AGAINST ('earth OR food OR money'
IN NATURAL LANGUAGE MODE)

或者?

感谢

您需要将搜索词与链接中提供的字符组合

MySQL使用有时被称为隐含布尔逻辑的东西,其中

+ stands for AND
- stands for NOT
[no operator] implies OR 

有关更多信息,请参阅手册

所以你的第一个查询是

SELECT 
*,
MATCH (title) AGAINST ('+earth +food +money' IN NATURAL LANGUAGE MODE) AS SCORE
FROM
_videvotradotto
WHERE
MATCH (title) AGAINST ('+earth +food +money' IN NATURAL LANGUAGE MODE)

和第二个

SELECT 
*,
MATCH (title) AGAINST ('earth food money' IN NATURAL LANGUAGE MODE) AS SCORE
FROM
_videvotradotto
WHERE
MATCH (title) AGAINST ('earth food money' IN NATURAL LANGUAGE MODE)

"蚯蚓;以及";缺少";包含在CCD_ 1中。所以LIKE会给你额外的单词。

(我无法解释为什么会出现更大的"720"。(考虑尝试IN BOOLEAN MODE

你真的应该看看文件来观察这两个";"异常";,以及可能的其他异常。

同时,"AND"one_answers"OR"可能是"AND";停止单词";。这意味着他们被忽视了。(人们希望"the"在英语中被忽略!(

同时,nbk解释了如何在全文中进行AND和OR运算。

最新更新