gpt4 book ai didi

MySQL - 如何按标签查询项目,按匹配标签计数排序

转载 作者:可可西里 更新时间:2023-11-01 07:45:31 24 4
gpt4 key购买 nike

我的架构看起来像这样:

items ( id, title, blah )
tags (id, name )
item_tags ( item_id, tag_id )

我想列出所有项目,其中项目的标签“在”所选标签的数组中,然后按与选择匹配的标签数量排序(例如 [1, 2, 3])

我目前拥有的是:

SELECT *, COUNT(item_tags.tag_id) AS tag_count
FROM items
JOIN item_tags
ON item_tags.item_id = items.id
WHERE item_tags.tag_id IN (1, 2, 3)
GROUP BY items.id
ORDER BY tag_count DESC

这很好用,除了 tag_count 只是获取所选项目的标签总数,我希望它是包含在 (1, 2, 3) 中的所选标签的数量。

带有标签 (1, 2, 3) 的项目应该位于带有标签 (1, 5, 6, 7) 的项目之前。

如果有这样的解决方案,我正在使用 Kohana 3 的 ORM。

最佳答案

只需将您的 SELECT 更改为:

SELECT *, COUNT(*) AS tag_count
.....

关于MySQL - 如何按标签查询项目,按匹配标签计数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7230534/

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