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

airyland
  • 5.7k

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

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

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

回复
阅读 4.7k
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;
Peng
  • 2
新手上路,请多包涵

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

你知道吗?

宣传栏