【问题标题】:Rails where condition with OR is NULL insideOR 条件为 NULL 的 Rails
【发布时间】:2022-11-23 03:13:12
【问题描述】:

我想获取所有支付时间为 NULL 或在某个时间范围内的记录。如何在where 中的条件中添加or where disbursed_at IS NULL? 我的实际查询要长得多,我不想使用.or 重复所有查询

Investor.left_join(:disbursements).where(disbursements: { disbursed_at: year_period })

【问题讨论】:

  • @engineersmnky 第一个成功了!如果您将其作为答案提交,我会接受

标签: ruby-on-rails activerecord


【解决方案1】:

一般来说,您可以通过提供 Array 来添加 OR column_X IS NULL 条件,其中至少包含一个 nil 元素,作为 Hash 参数的一部分。

例如:

Investor
  .left_join(:disbursements)
  .where(disbursements: { disbursed_at: [year_period,nil] })

【讨论】:

    猜你喜欢
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 2021-07-14
    • 2017-12-29
    • 2011-12-31
    相关资源
    最近更新 更多