gpt4 book ai didi

mysql - 为多个单词关键字创建索引mysql

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

我有 mysql 数据库,我有一个包含几列的表,其中一列包含我需要搜索的关键字。

关键字位于用引号分组的列中,如下所示

    ID                    keywords
------------------------------------------------------------
row 1: "one" "one two" "one two three" "three four five" "two three one"
row 2: "four" "forty four" "fifty four" "thirty four two" "three four five"

正如您所看到的,每个“关键字”可以是引用中的单个单词或一组单词,其中引用中的单词充当一个关键字。

我想找出哪些行包含所需的关键字组。

要匹配关键字,整个引用必须完全匹配。

例如,如果我想查找哪些行包含“two”,它应该返回零匹配。如果我搜索“三四五”,它应该返回第 1 行和第 2 行。

可能有数千行这样的。

关键字列的类型为 TEXT

  1. 我想创建一个索引来加快关键字列的搜索速度,我看到有不同类型的索引,例如 UNIQUE、INDEX、SPATIAL、PRIMARY、FULLTEXT 等。我应该选择在哪一个上建立索引关键字栏。 MYSQL语句是做什么的?

  2. 如何制作MYSQL语句使用索引来搜索关键字组

现在我有这个语句来进行搜索,我不确定这是否是最好的方法。

  SET @find='three four five';
SELECT * from table WHERE MATCH (keywords) AGAINST(find IN NATURAL LANGUAGE MODE);

最佳答案

这是错误的数据库结构。但如果您现在无法更改数据库,并且需要获取结果:

SELECT * from table WHERE `keywords` LIKE '%"three four five"%'

如果该变量来自用户,请使用prepared statement 。然后查询将如下所示:

SELECT * from table WHERE `keywords` LIKE '%"?"%'

关于mysql - 为多个单词关键字创建索引mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50667037/

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