繁体   English   中英

如何在数组列中搜索多个字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM