从参数化查询中删除引号

Remove quotes from parameterized query

我在 rails 上使用 postgresql 和 ruby,我正在尝试参数化我的查询,但是当我这样做时,它会在填充我的占位符的参数上添加引号。这是一个简单的例子:

query = <<-SQL
   select * from table1 ?
SQL

当我这样执行上面的查询时:

result = Table1.find_by_sql([query, "where table1.locations IN (1,2,3)"])

它将使用条件周围的引号执行这样的查询:

select * from table1 'where table1.locations IN (1,2,3)'

但我想要:

select * from table1 where table1.locations IN (1,2,3)

您不能像那样绑定部分查询,只能绑定值。如果你想有一个动态的 where 子句,你将不得不求助于字符串连接:

result = Table1.find_by_sql([query + " where table1.locations IN (1,2,3)")