0

这是原始查询

where(countries.map{|c| "zones.countries LIKE '%#{c}%'"}.join(' OR '))

现在我会用 ? 重写这个查询?像这样的运营商

where(countries.map{|c| "zones.countries LIKE ?", "%#{c}%"}.join(' OR '))

但它不起作用。有什么建议吗?谢谢

4

1 回答 1

1
where(countries.map { |c| "zones.countries LIKE ?" }.join(" OR "), *countries.map{ |c| "%#{c}%"})

您可以用这样的where东西替换上面的第一个参数以避免一个循环

("zones.countries LIKE ? OR " * countries.size).gsub(/ OR $/, '')
于 2012-07-12T13:24:37.990 回答