[英]How to search an array column for multiple strings
我的表中设置了这样的列
add_column :logs, :names, :string, array: true
add_index :logs, :names, using: :gin
我有这个查询通过名称列搜索表以返回包含罗伯特的记录
Logs.where("? = ANY (names)", 'robert')
我很好奇如何在表格中搜索多个名称。 像这样的东西,但下面的查询不起作用
Logs.where("? = ANY (names)", ['robert', 'bob'])
我希望它 function 类似于这样,我传入一个数组并返回所有匹配的记录
User.where(id: [1,2,3,4])
我需要它作为 OR 语句
User.where(names: ['robert', 'bob'])
User.where("names IN (?) ", ['robert', 'bob'])
注意:它区分大小写
# SQL Contains Operator
1) User.where("names @> ARRAY[?]::varchar[]", ['robert', 'bob'])
# Contains Operator
2) User.where.contains(names: ['robert', 'bob'])
# Overlap Operator
3) User.where.overlap(names: ['robert', 'bob'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.