gpt4 book ai didi

sql - 使用 JOIN 和 LIKE 的 Rails OR 查询

转载 作者:行者123 更新时间:2023-12-01 10:52:03 30 4
gpt4 key购买 nike

我需要在 rails 中运行这样的查询:

select users.* from users inner join posts on users.id = posts.user_id where posts.title like '%xxx%' or posts.title like '%yyy%' or posts.title like '%zzz%'

User 和 Post 是我的模型。我做了这样的事情:

title_array = ["xxx", "yyy", "zzz"]
users = User.all
users = users.joins(:posts).where(posts: { title: title_array })

但这给了我这样的 sql 查询:

select users.* from users inner join posts on users.id = posts.user_id where posts.title IN ('%xxx%', '%yyy%', '%zzz%')

另外,我在一个数组中有 posts.title 的值。因此,我给出了包含三个 OR 值的示例,但它可能会因每个请求而异。

我需要使用 Rails 方法来解决这个问题。有人可以帮我解决这个问题吗?

最佳答案

尝试一下

users.joins(:posts).where(title_array.map{|title| "posts.title like '%#{title}%'"}.join(' or '))

关于sql - 使用 JOIN 和 LIKE 的 Rails OR 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17990419/

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