根据标签查找相关书籍的mysql语句

有两个表
1.书籍表
book_id
2.标签表
tag_id
3.书籍,标签关系表
book_id,tag_id

可以很简单地实现相关书籍的查找,但是根据“有相同标签就是相关书籍”的话忽略了相关度。比如三个标签相同的书籍比一个标签相同的书籍明显相关度更高。

想请教,如何实现按照相关度高低排序?有没有相关算法?

阅读 5.9k
2 个回答
SELECT *, 
CASE
    WHEN tag_id IN (tags1) THEN 1
    WHEN tag_id IN (tags2) THEN 2
    WHEN tag_id IN (tags3) THEN 3
END as r
FROM relations
WHERE tag_id IN (tags3)
ORDER BY r;
新手上路,请多包涵

事先算好
tag只是相关度的一个feature,计算时也要考虑其他因素。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题