gpt4 book ai didi

MYSQL FULLTEXT 多关键字搜索

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

我有一个名为 keywords 的字段存储的信息是用 | 分隔的关键字

例如:

sky|Banana is good|apple|apple is red|sky is blue|green

我尝试做的是在该字段中搜索并查找至少包含一个关键字的结果。

为此,我在 bool 模式下使用了 MATCH AGAINST

SELECT * FROM mytable 
WHERE MATCH(kewords)
AGAINST ('+sky is blue +Banana is good +otherword' IN BOOLEAN MODE)

但是结果出错了,例如它会选择包含 +sky is blue 的结果还有一个词sky

我知道如何在 PHP 中解决这个问题,但我正在寻找 MYSQL 解决方案,我认为 Match AGAINST 就是我正在寻找的。

最佳答案

实现此目的的一种方法是使用 LIKE,用分隔符分隔搜索词:

SELECT * FROM mytable
WHERE CONCAT('|', keywords, '|') LIKE '%|sky is blue|%' OR
CONCAT('|', keywords, '|')LIKE '%|Banana is good|%' OR
CONCAT('|', keywords, '|') LIKE '%|otherword|%'

这可确保搜索短语必须完全匹配(即 sky is blue 不会匹配 sky)。

如果您希望所有短语都存在(而不是任何短语),只需将 OR 更改为 AND

关于MYSQL FULLTEXT 多关键字搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52125796/

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