0

我有一个包含不同文章的网站。数据库结构是这样的:

文章编号 | 文章位置 | 文章分类 | 文章主题

列的实际文本字符串位于另一个表中,因此所有列都填充有数字(整数)

我想查找相关帖子,这意味着如果用户阅读 ArticleLocation = 1、ArticleCategory= 3 和 ArticleTopic = 2 的文章,那么我想找到共享最多相同列值的前 5 篇文章。

关于如何做到这一点的任何想法?

提前致谢

4

1 回答 1

0

假设表名为ArticleTable,请尝试以下操作:

SELECT *, (
CASE ArticleLocation WHEN :loc THEN 1 ELSE 0 END +
CASE ArticleTopic WHEN :topic THEN 1 ELSE 0 END +
CASE ArticleCategory WHEN :cat THEN 1 ELSE 0 END) AS Relevance
FROM ArticleTable 
ORDER BY Relevance DESC
LIMIT 5

:loc并设置:topic:cat相关值。

于 2013-03-28T09:22:01.677 回答