gpt4 book ai didi

mysql - 从 MySQL 数据库中提取相似项目的最佳方法

转载 作者:行者123 更新时间:2023-11-30 23:36:01 25 4
gpt4 key购买 nike

我有一个项目数据库(与此相关的文章)。
我想做的是,我想根据两件事提取与特定项目相似的 X 项目 - 标题,即文章的标题,以及位于另一个表中的标签。

结构如下(仅相关字段):

表格:文章
字段:文章id、标题

表:标签
字段:tagid、tagtext

表:文章标签
字段:tagid、articleid

执行此操作的最佳方法是什么?

最佳答案

对于 myisam 表,您可以使用自然语言全文搜索: http://dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html

SELECT * FROM article a
LEFT JOIN articletag at ON (at.articleid = a.articleid)
LEFT JOIN tag t ON (at.tagid = t.tagid)
WHERE MATCH (a.title) AGAINST ('some title' IN NATURAL LANGUAGE MODE)
OR MATCH (t.tagtext) AGAINST ('some tag' IN NATURAL LANGUAGE MODE)
GROUP BY a.articleid # if you don't want get duplicates

您还可以考虑将有关标签的冗余信息添加到文章表的一个字段(例如 <taga><tagb><tagz> )中,并在每次添加/删除标签时更新它。这将简化查询并且应该更快:

SELECT * FROM article a
WHERE MATCH (a.title, a.tagtext) AGAINST ('some title or tag' IN NATURAL LANGUAGE MODE)

关于mysql - 从 MySQL 数据库中提取相似项目的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7300183/

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