【问题标题】:Rails .where multiple values, one not nilRails .where 多个值,一个不是 nil
【发布时间】:2014-04-11 14:56:44
【问题描述】:

此代码提取 foobar 为 Nil 的记录

Model.where(user_id: 14, foobar: nil)

如何使用相同的语法并获得 NOT nil?

类似:

Model.where(user_id: 14, foobar: !nil)

【问题讨论】:

标签: ruby-on-rails activerecord


【解决方案1】:
Model.where(user_id: 14).where("foobar IS NOT NULL")

Model.where("user_id = ? AND foobar IS NOT ?", 14, nil)

【讨论】:

  • 谢谢,这符合我的要求。 (带导轨 3)不错的解决方案
【解决方案2】:

导轨 4:

Model.where(user_id: 14).where().not(foobar: nil)

Rails 3 - Rails where condition using NOT NULL

【讨论】:

  • 出现 ArgumentError 错误:参数数量错误(0 代表 1)
  • Rails 版本..?也可以在第二个位置尝试where()
  • 3.2,上面的代码仍然给我参数错误
  • @emaillenin 嗨谢谢 - 问题:将多个 .where() 附加在一起时不会影响性能吗?
  • @BKSpureon 不,它们最终将成为单个 SQL 查询
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-24
  • 2011-05-14
  • 2020-08-31
相关资源
最近更新 更多