【问题标题】:Active Record find using conditions, between two floatsActive Record 使用条件在两个浮点数之间查找
【发布时间】:2011-11-01 22:35:34
【问题描述】:

我已经尝试了我能想到的所有发现组合,但还没有 100% 成功。进行此查找的首选(或任何有效的方式)方式是什么:

使用 where 时,出现无法迭代浮点错误。

Question.where('id not in (?) AND rating.id = ? AND pvalue BETWEEN ?', not_in, rating_id, 0.0..100.0).limit(25)

使用条件哈希时,我不知道如何将结果也限制为数组。所以我尝试了两个条件,但我认为 'id not in (?) 部分永远不会变成 sql...它返回 not_in 数组中的结果。

Question.find_all_by_rating_id(rating_id, :limit=>25, :conditions => ['id not in (?)', not_in], :conditions=>{:pvalue => 0.0..100.0})

上面跳过了第一个条件(反正里面有两个看起来不太对...)并返回

SELECT "questions".* FROM "questions" WHERE "questions"."rating_id" = 458 AND ("questions"."pvalue" BETWEEN 0.0 AND 100.0) LIMIT 25

所以我需要哈希条件和不符合条件的 id 的组合。任何帮助表示赞赏!

注意:pvalue 是浮点数,not_in 是我不希望查询返回的 id 数组。

【问题讨论】:

    标签: sql ruby-on-rails ruby-on-rails-3 activerecord


    【解决方案1】:

    试试

    Question.where("id not in (?) AND rating.id = ? AND pvalue BETWEEN ? AND ?", 
      not_in, 
      rating_id, 
      0.0, 100.0
    ).limit(25)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-02
      相关资源
      最近更新 更多