我希望有人比我拥有更高级的 MySQL 知识来帮助指导我如何执行以下操作。
假设我有表 #1,视频:
Video ID
Video Name etc
我还有表 #2,标签
Tag ID
Tag Name
我有第三个表,它将每个视频链接到一个或多个标签:
ID (primary and autoincremented)
Tag ID
Video ID
现在我可以使用上述内容与 PHP 结合使用来找到类似的视频(基于对有多少个视频共享最大数量的标签进行排名),但这涉及到许多查询,我觉得这是可以完成的单独通过 mysql 查询更优雅。我想浏览这些视频,并根据它们彼此共有的标签数量找到最相似的视频。
感谢任何帮助!
最佳答案
假设视频是“Gravity”,Gravity 的 VIDEO_ID 是 4321。
SELECT COUNT(res.TAG_ID), res.VIDEO_ID
FROM tag_link_table res
INNER JOIN tag_link_table target
ON target.VIDEO_ID = 4321 AND res.TAG_ID = target.TAG_ID
GROUP BY res.VIDEO_ID
ORDER BY COUNT(res.TAG_ID) DESC
关于php - MySQL查询根据相似标签的数量进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24047157/