gpt4 book ai didi

sql - 如何查询具有 3 个标签的事件?

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:45 27 4
gpt4 key购买 nike

我有以下模型:

activity.rb

tag.rb

tagging.rb

标签是事件和标签的连接模型。

我想搜索具有 2 个或更多标签的事件。我如何在 Rails 中执行此操作?

例如:

我有 tag1 = Christmas,tag2 = Florida,tag3 = John

如果存在,我想找到 tag1、tag2 和 tag3 存在的 Activity。

[编辑]

我最终做了什么:

tags = [tag1, tag2, tag3]

activities = []
tags.each do |tag|
activities << tag.activities
end

activities.flatten.group_by { |activity| activity.id }

如果任何组值的大小等于 tags.size,则该事件包含所有标签。

最佳答案

如果你想要那些应该存在特定标签的事件,那么试试下面的命令

selected_activity = Activity.all.select do |activity|
%w(Christmas Florida John).all? do |name|
activity.tags.include?(name)
end
end

一旦它运行,我们总是可以重构它以减少被触发的查询数量...

关于sql - 如何查询具有 3 个标签的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13096558/

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