gpt4 book ai didi

mysql - SQL查询如何匹配关键字?

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

我正在构建一个接受用户输入关键字并输出匹配数据的网站。例如,如果用户将关键字指定为“Restaurant pizza”,那么我的数据库应该输出这样的记录。

我当前的表有一个名为 category 的列和五个名为 keyword1keyword5 的列,其中包含它们的专业区域,即“披萨” , 'chicken' 或 'bbq' 等

但我不知道如何编写 SQL 查询,因为用户可以按任何顺序输入关键字:类别优先或专业领域优先。

所以这样的查询肯定不会返回任何结果(假设用户输入“Restaurant pizza”进行查询):

SELECT * 
FROM message
WHERE category LIKE 'Restaurant pizza'
OR keyword1 LIKE 'Restaurant pizza'
OR keyword2 LIKE 'Restaurant pizza'

我想将输入关键字拆分为单词然后将 WHERE 子句中的每个单词运行到数据库是个坏主意。但我真的不知道如何实现我的目标。

另外,请问在这种场景下,如何建索引,请指点一下?

最佳答案

您应该在 categorykeywords 列上创建 FULLTEXT 索引,然后在查询数据时按分隔符(空格字符)分解查询字符串,然后创建类似这样的查询:

SELECT * FROM items 
WHERE
MATCH (category,keyword1,keyword2,keyword3,keyword4,keyword5)
AGAINST ('pizza')
AND
MATCH (category,keyword1,keyword2,keyword3,keyword4,keyword5)
AGAINST ('restaurant');

关于mysql - SQL查询如何匹配关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29138359/

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