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(如果关键字太多)并在动态列名称周围使用类似的标准。
我知道您可以搜索包含数组中任何项目的列,例如:
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(如果关键字太多)并在动态列名称周围使用类似的标准。