Ruby Sequel和模式数组
我有一个用于ILIKE的模式数组,一个带有其他过滤器的现有数据集,我想将它添加到其中Ruby Sequel和模式数组,ruby,sequel,Ruby,Sequel,我有一个用于ILIKE的模式数组,一个带有其他过滤器的现有数据集,我想将它添加到其中 patterns = ['abc%', 'bcd', '%cde', ...] 我使用Postgres,所以在SQL中我会做一些类似于和字段ILIKE ANY('abc%,…),但是如何实现这一点(或者类似的事情,比如动态和(字段ILIKE'abc'或字段ILIKE'bcd')?Sequel的理想解决方案是什么 谢谢!以下任何一项都应该有效 where(ary.map {|val| Sequel.ilike(
patterns = ['abc%', 'bcd', '%cde', ...]
我使用Postgres,所以在SQL中我会做一些类似于和字段ILIKE ANY('abc%,…)
,但是如何实现这一点(或者类似的事情,比如动态和(字段ILIKE'abc'或字段ILIKE'bcd')
?Sequel的理想解决方案是什么
谢谢!以下任何一项都应该有效
where(ary.map {|val| Sequel.ilike(:column_name, val)}.reduce(&:|))
#or
where(Sequel.lit("table_name.column_name ILIKE ANY(#{ary.map(&:inspect).join(',')})"))
就我个人而言,我更喜欢前者,但如果您控制
ary
的内容,则任何一个都可以正常工作。以下任何一个都可以工作
where(ary.map {|val| Sequel.ilike(:column_name, val)}.reduce(&:|))
#or
where(Sequel.lit("table_name.column_name ILIKE ANY(#{ary.map(&:inspect).join(',')})"))
就个人而言,我更喜欢前者,但如果您控制ari
的内容,则两者都应该执行而不会出现问题