我正在使用pg_array扩展程序和续集版本4.1.1。
我添加了这样的扩展程序:
Sequel::Database.extension :pg_array
我创建了一个这样的列:
alter_table :emails do
add_column :references, "text[]", null: true
end
我可以将数组加载到postgress数组列中,就像使用普通数组一样。
上述链接中不清楚的是如何根据此数组列中的值执行查询。
例如,如果电子邮件表中的一行包含引用列中的这些值:
references
--------------------------------------------------------------------
{}
{5363f773bccf9_32123fe75c45e6f090953@Pauls-MacBook-Pro.local.mail}
如何查询电子邮件表以查找包含上述值的引用数组值的行:
Email.where(references: ????)
答案 0 :(得分:4)
使用pg_array_ops
扩展程序:
Sequel.extension :pg_array_ops
Email.where(Sequel.pg_array_op(:references).contains('5363f773bccf9_32123fe75c45e6f090953@Pauls-MacBook-Pro.local.mail'))
答案 1 :(得分:0)
你试过吗?
ref = '5363f773bccf9'
emails = Email.arel_table
Email.where( emails[ :references ].matches( "%#{ref}%" ))