gpt4 book ai didi

mysql select ... in ,统计几个匹配相关性

转载 作者:行者123 更新时间:2023-11-29 07:53:18 24 4
gpt4 key购买 nike

我正在尝试执行“类似帖子”mysql 字符串,我所有的帖子都有标签,所以我正在尝试使用此查询:

SELECT articles.id,title,cover_image 
FROM articles
INNER JOIN article_tags ON (article_tags.article_id = articles.id)
WHERE article_tags.tag_id
IN (312,13016,109,120,1493,103,1667,13015,331,5,564,13014,1670,113,13045)
AND articles.id <> 88230

它以某种方式完成了工作,但问题是这些帖子与原始帖子并不真正相关,例如,如果一个标签是“酷”,那么我会收到任何带有标签“酷”的帖子

理想情况下,我想要的是根据标 checkout 现的次数对这些结果进行排序,例如:

article 1 has tags: tag1, tag2, tag3, tag4, tag5
article 2 has tags: tag2, tag3, tag4,
article 3 has tags: tag1, tag4
article 4 has tags: tag1, tag2, tag4, tag5

所以我希望sql返回这组结果:

标签1,标签4,标签2,标签3

最佳答案

您走在正确的道路上。只需使用 group by 查找匹配项的数量并按其排序:

SELECT articles.id, title, cover_image 
FROM articles INNER JOIN
article_tags
ON article_tags.article_id = articles.id
WHERE article_tags.tag_id IN (312,13016,109,120,1493,103,1667,13015,331,5,564,13014,1670,113,13045) AND
articles.id <> 88230
GROUP BY articles.id,title, cover_image
ORDER BY count(*) DESC;

您也可以将 count(*) 作为 NumMatches 包含在 select 中。

关于mysql select ... in ,统计几个匹配相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25835430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com