【问题标题】:Rails querying by two attributes from same modelRails 通过来自同一模型的两个属性进行查询
【发布时间】:2016-04-26 22:34:08
【问题描述】:

Rails 中有没有一种方法可以通过比较来自同一模型的两个属性来查询记录列表?

我有一个用户模型,我想查询所有用户,其中 updated_at 时间在 Users 表上 created_at 时间的 6 小时内。

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 activerecord rails-activerecord


    【解决方案1】:

    如果你给where 一个字符串,它就会变成SQL。所以你可以这样说:

    User.where("updated_at - created_at <= interval '6 hours'")
    

    那是在 Postgres 中。 MySQL 应该是相似的,但有一点不同。

    【讨论】:

    • 是否可以在 created_at 时间增加 2 小时?
    • 当然! :-) 实际上这和interval '4 hours' 的比较是一样的,对吧?我会花一点时间学习 SQL,并在像 psql 这样的普通数据库提示符下测试这些查询,然后在它们执行您想要的操作时将它们转换为 ActiveRecord。例如SELECT * FROM users WHERE updated_at - created_at &lt;= interval '4 hours'";.
    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 2014-08-10
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多