簡體   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