ActiveRecord / Psql - 如何查找列与数组中的项目相似的记录

ActiveRecord / Psql - How to find records where column is like and item in an array

我知道您可以搜索包含数组中任何项目的列,例如:

  arr = ["Seattle", "New York"]
    
  Company.where("location IN (?)", arr)

现在如何搜索 'like' 数组中任意项的列?

类似于:

 Company.where("location like '%Seattle%'")

但是对于数组中的每一项。

谢谢。

您可以将数组元素连接成一个字符串。

  • 专业版:极其简单的解决方案
  • con: 如果一个字符串以 foo 结尾,下一个字符串以 bar 开头,并且您搜索 foobar,那么它将是一个匹配项

结论:如果您选择这种方法,那么为了安全起见,使用一些分隔符会很有帮助。

您可以使用类似于标准:

lower(location) similar to '%(foo|bar|baz)%'

或者您可以创建一个带有关键字的 table(如果关键字太多)并在动态列名称周围使用类似的标准。