0

我有以下查询

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

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

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

我被退回了一个记录。我不知道为什么这不起作用。我是否缺少 postgresql 中 ILIKE 的细微差别?

4

1 回答 1

2

尝试以下操作:

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

如果要使用变量代替,Camp Hill则需要确保用双引号将字符串括起来以使插值起作用而不是单引号,如下所示(注意使用单引号的封闭双引号) :

Suburb.where("name ILIKE ?", "%#{my_var}%")
于 2013-10-31T16:42:56.873 回答