我必须查询需要管理档案的用户。 用户有一个最小和最大字段,如果档案号码的最后一个号码在这两个值之间,用户需要找到。 这是围绕范围工作之间大多数查询的另一种方式。Ruby Activerecord查询与范围比较
目前我必须使用普通的sql,下面的工作,但我想使用activerecord查询(第一个错误)或至少一个更安全的方法(第二个错误)。
为了更好的可读性,我缩短了字段的名称。
dosnr = 123456
# error invalid identifier
# User.where(dosnr.to_s[-1] => :min..:max)
# error invalid character 6
# User.where("#{dosnr.to_s[-1]} between ? and ?, min, max ")
# sql works
User.where("#{dosnr.to_s[-1]} between min and max ")
如何在不使用sql的情况下执行此操作,或者不必循环所有记录或不必使用多个where语句?
'dosnr'是用户表中的一列吗?什么是数据类型?我相信在activerecord中没有这样的方法,你使用哪个SQL? – Surya
no dosnr是一个变量,sql是最后一行 – peter
这是否意味着min和max是列,并且您需要从dosnr变量的最后一个整数中查找所有用户b/w min和max? – Surya