0

在 Rails 中使用 Where 子句时遇到了一个奇怪的问题。我想这与我的 OR 运算符语法有关。这是我的查询:

  Cookie.where("ID = ? OR ID = ? OR ID = ? OR ID = ?", chocolate.to_s, sugar.to_s, peanut_butter.to_s, oatmeal.to_s)

当我尝试执行查询时,我的应用程序只是无休止地挂起。但是,如果我提交如下查询:

  Cookie.where("ID = ?", chocolate.to_s)

我得到了预期的结果。对于此 where 子句的正确格式的任何帮助将不胜感激。谢谢。

更新 我进入 Rails 控制台并按照您的建议进行操作。结果是这样的:

  SELECT \"TBLCookies\".* FROM \"TBLCookies\"  WHERE (ID in ('4','3','2','1'))

这似乎是正确的。我打开 SQL Developer,将这个查询粘贴进去,然后运行它。我得到了预期的结果。所以那里的一切似乎都很好。但是,当我尝试在 rails 控制台中运行查询时,我什么也得不到。控制台只是无限期地挂起。任何对可能出现问题的见解都会很棒。

4

1 回答 1

1

为什么不这样做

Cookie.where("ID in (?)",[chocolate, sugar, peanut_butter, oatmeal].collect(&:to_s))
于 2012-10-14T06:57:26.500 回答