【发布时间】:2013-09-26 11:17:25
【问题描述】:
使用 Rails 3 Active Record 模型(postgres db)我想获取这样的用户搜索输入:
"some string, some other string, final string"
从那里我想用逗号分割字符串并构建一个看起来像这样的 SQL 查询
SELECT * FROM items WHERE item_name SIMILAR TO '%(some string)%' OR item_name SIMILAR TO '%(some other string)%' OR item_name SIMILAR TO '%(final string)%'
由于我对 Ruby 的语法相当不熟悉,因此我正在努力想出一种构建此查询的方法。
【问题讨论】:
-
str = "some string, some other string, final string".split(',').map{|s| "%(#{s.strip})%"}然后SIMILAR TO ANY(ARRAY#{str})可能有用吗? -
@j03w:我无法让 SIMILAR TO 与 ANY 一起工作,所以我认为你被困在 LIKE 或跳到真正的正则表达式上。
标签: sql ruby-on-rails ruby postgresql