gpt4 book ai didi

mysql - MATCH AGAINST 与 MySQL 中的多个列

转载 作者:行者123 更新时间:2023-11-29 04:11:50 26 4
gpt4 key购买 nike

我正在尝试创建一个简化的搜索框,它将多个列与用户输入的一个或多个关键字进行匹配。下面的代码是我尝试使用MySQL的MATCH/AGAINST。但是,当指定了两列时,我无法正确执行查询,在本例中为“主题,国家/地区”。当我将代码作为“国家”或“主题”运行时,它将执行,但不会同时运行。

这有什么 secret 吗?

SELECT * ,
MATCH (
topic, country
)
AGAINST (
'China'
) AS score
FROM reports2
WHERE MATCH (
topic, country
)
AGAINST (
'China'
)
ORDER BY score DESC

产量:

#1191 - Can't find FULLTEXT index matching the column list

我发现这是对错误的不准确描述,因为这两个都有 FULLTEXT 索引。为此,我什至复制了该表,将其从 INNODB 转换为 MyISAM。

如有任何建议,我们将不胜感激。

最佳答案

你不需要每一列的全文索引,而是一个覆盖两列的全文索引

FULLTEXT_INDEX(topic, country)

在每一列上有一个索引将工作

FULLTEXT(topic); FULLTEXT(country); /* will not work as expected */

我也认为顺序很重要,但在这方面我可能错了

关于mysql - MATCH AGAINST 与 MySQL 中的多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8406940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com