gpt4 book ai didi

php - 使用 PHP 和 MySQL 创建相关或类似的帖子

转载 作者:IT老高 更新时间:2023-10-29 00:03:00 26 4
gpt4 key购买 nike

我环顾四周,想知道如何使用 PHP 和 MySQL 创建相关或类似的帖子以显示在我的网站上?如何执行此操作的基本示例是什么?

最佳答案

使用 MySQL 全文搜索 MATCH (col1,col2,...) AGAINST (expr [search_modifier])东西。

假设您的表格是articles,您需要查找有关当前帖子标题的相关帖子。这样做:

SELECT *, MATCH(title, body) AGAINST('$CurrentPostTitle') AS score
FROM articles
WHERE MATCH(title, body) AGAINST('$CurrentPostTitle')
ORDER BY score DESC LIMIT 5

这将为您提供前 5 个相关帖子。

但首先要记住通过运行以下查询来启用对该表的列的全文搜索:

ALTER TABLE articles ADD FULLTEXT (title, body);

[编辑]:为什么不使用 LIKE: 澄清 OP:

因为它不会给出正确的结果。假设您当前的标题是“1980 年的音乐”,并且您想要相关的帖子。现在,如果您使用 LIKE,那么只会出现包含“Music of 1980”字词序列的帖子。但是,如果您使用 MATCH ... AGAINST,则会出现包含 Music OR 1980 的帖子。此外,同时包含 Music 和 1980 的帖子将出现在顶部,因为它为每个结果提供了一个 SCORE,并且我们按该分数排序。我希望这很清楚。

[编辑]:2:

如果有分类,可以在SQL查询where子句中添加AND Category = '$CurrentCategory',得到更具体的结果。

[编辑]:3:OP 不能使用全文:

如果您不能使用全文(出于某种原因),您可以只显示来自同一类别的 5 个随机帖子。由于它们属于同一类别,因此它们至少在某种程度上是相关的:

SELECT *
FROM articles
WHERE Category = '$CurrentCategory'
LIMIT 5

编辑语法:在 MySQL 代码中将 LIMTI 更改为 LIMIT

关于php - 使用 PHP 和 MySQL 创建相关或类似的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3593413/

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