我正在寻找一种类似的方式来查询数据库like this,但却在努力解决我想要的问题。
我不只是寻找答案,我也在寻找你在哪里找到使用的方法。我搜索了postgres db query,rails db query但没有显示符合我想要的内容,甚至关闭。
foo = "a,b,c,d"
b.bar #=> "b,d,a,f,z" Code shorten for the B Class.
B.where('bar like ?', "%#{foo}")
我知道什么都不回报。我希望foo
列中包含b.bar
的任何值,然后将其返回。
如果foo = "a"
,我会得到一个结果,但foo
可以有多个值。
我正在使用Ruby 2.2.5。 Rails 5. DB:PostgreSQL
如果代码非常简单,将升级到Ruby 2.3。
答案 0 :(得分:0)
答案 1 :(得分:0)
您应该在实际查询之前做一些前期工作,首先为like
列表中分隔的每个项目构建,
条件,然后用逻辑or
链接它们:
conditions = b.bar.split(',').map{|x| B.arel_table[:bar].matches("%#{x}%") }
B.where conditions.reduce(:or)