就像搜索方法那样不返回记录

时间:2013-10-31 16:37:43

标签: sql ruby-on-rails postgresql ruby-on-rails-4 sql-like

我有以下查询

Suburb.where("name ILIKE ?", '%#{"Camp Hill"}%').to_a

返回一个空数组。但是如果我跑

Suburb.where(name: "Camp Hill").to_a

我已经回复了一条记录。我不知道为什么这不起作用。我在postgresql中错过了ILIKE的细微差别功能吗?

1 个答案:

答案 0 :(得分:2)

尝试以下方法:

Suburb.where("name ILIKE ?", '%Camp Hill%')

如果你想用一个变量来代替Camp Hill那么你需要确保用双引号包装字符串以使插值工作而不是单引号,如下所示(注意括号双引号)您使用单引号的地方):

Suburb.where("name ILIKE ?", "%#{my_var}%")