有两个表 1.书籍表 book_id 2.标签表 tag_id 3.书籍,标签关系表 book_id,tag_id
可以很简单地实现相关书籍的查找,但是根据“有相同标签就是相关书籍”的话忽略了相关度。比如三个标签相同的书籍比一个标签相同的书籍明显相关度更高。
想请教,如何实现按照相关度高低排序?有没有相关算法?
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;
欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。 温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。