我怎么能做这样的事情呢?
myarray = ["name1","name2"]
Product.where('name ILIKE ?', %#{myarray}%)我需要得到所有的产品,其中的名称像name1和name2。
这个是可能的吗?
发布于 2013-10-17 05:39:43
我认为你想用ILIKE函数测试所有的值。
在Postgres中是这样做的:
select * from table where value ilike any (array['%foo%', '%bar%', '%baz%']);尝试转换为Rails/Ruby语法,如下所示:
myarray_with_percetage_signs = ["name1","name2"].map {|val| "%#{val}%" }
Product.where("name ILIKE ANY ( array[?] )", myarray_with_percetage_signs)发布于 2018-04-25 10:22:54
最近遇到了同样的问题,因为两个答案都对我没有帮助(我使用的是MySQL数据库),我想我应该分享我的解决方案。
Product.select { |product| myarray.any?{|字符串| product.name.include?str }}
Product.where("name REGEXP '#{Regexp.new(myarray.join('|'))}'")
发布于 2013-10-17 04:09:44
Product.where('name IN (?)', myarray)应该做到这一点;)
https://stackoverflow.com/questions/19412607
复制相似问题