这似乎不起作用:

@zip = %w[07005, 07034, 07035]

CardSignup.find(:all, :conditions => ["zip_code IN (?)", @zip])

=> [ ]


但是,如果我使用第二个邮政编码执行简单的find_by,它将返回结果:

CardSignup.find_by_zip_code("07034")

=> Object<x01231 ..


我究竟做错了什么 ?

最佳答案

您对数组的实现不正确。目前逗号是每个数组对象的一部分的方式:

>> %w[07005, 07034, 07035]
=> ["07005,", "07034,", "07035"]


您应该在删除逗号的情况下实现此目的:

>> %w{07005 07034 07035}
=> ["07005", "07034", "07035"]


要么:

>> [07005, 07034, 07035]
=> [07005, 07034, 07035]


因此完整的实现是:

@zip = %w{07005 07034 07035}

CardSignup.find(:all, :conditions => ["zip_code IN (?)", @zip])

=> [Object<x01231 ..

关于mysql - 如何在(?)调用中执行SQL查找?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5537913/

10-09 15:36