gpt4 book ai didi

php - MySQL中的部分关键字搜索

转载 作者:行者123 更新时间:2023-11-30 00:27:52 25 4
gpt4 key购买 nike

上下文:我正在尝试为我的网站创建一个搜索功能,用户可以输入完整的句子,并根据句子中的关键字与 MySQL 数据库中存储的单词的匹配接收结果:

**ID | Skill**
1 | Painting
2 | Carpenter
3 | Builder

例如,用户可能搜索“我想要完成一些绘画”,并使用以下 MySQL 查询(以及 foreach 和explode 函数),它将返回ID 1强>来自数据库:

$stmt = $mysqli->prepare ("SELECT username FROM users WHERE users.id IN (SELECT
skills.userid FROM skills WHERE skills.skill LIKE CONCAT('%',?,'%') GROUP BY
skills.skill ORDER BY CASE WHEN skills.skill LIKE CONCAT(?,'%') THEN 0 WHEN
skills.skill LIKE CONCAT('% %',?,'% %') THEN 1 WHEN skills.skill LIKE CONCAT('%',?)
THEN 2 ELSE 3 END, skills.skill)");

考试题:我遇到的问题是,如果用户输入“我想要一名画家”,则不会返回 ID 1。如何修改查询以考虑到 paintingpainter 相似并且应该返回这一事实?

最佳答案

您可以向技能表添加一个名为同义的列,其中包含该技能的一些关键字。

例如,“绘画”行在同义列中将有一个“绘画绘画画家”。

然后更改查询以检查同义列插入技能列。

这是最简单的方法,但要求您为每个技能表行添加一个同义词。

关于php - MySQL中的部分关键字搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22738087/

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