在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控制台中运行查询时,我得不到任何回复。控制台只是无限期挂起。任何可能出现问题的见解都会很棒。
答案 0 :(得分:1)
为什么不这样做
Cookie.where("ID in (?)",[chocolate, sugar, peanut_butter, oatmeal].collect(&:to_s))