【问题标题】:How do I test for non-null in Ruby::Sequel?如何在 Ruby::Sequel 中测试非空值?
【发布时间】:2014-05-26 21:38:55
【问题描述】:

我想做类似的事情

User.select(...).where(:name != nil)

不用写类似的东西

User.select(...).to_a.find_all {|user| user.name}

我可以选择空值,但不能选择非空值。 有没有什么技巧,还是在 Sequel 的领域之外?

【问题讨论】:

    标签: ruby sequel


    【解决方案1】:

    您可以使用exclude 代替where

    User.select(...).exclude(name: nil)
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      User.select(...).where('name IS NOT NULL')
      

      【讨论】:

      • 这在 ActiveRecord 之外不起作用。但是,.where('name IS NOT NULL'.lit) 会。
      【解决方案3】:

      您寻求的答案是.where(Sequel.~(name: nil))

      在此处阅读更多信息:https://github.com/jeremyevans/sequel/blob/master/doc/sql.rdoc

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-21
        • 2014-04-10
        • 1970-01-01
        • 1970-01-01
        • 2020-01-21
        • 2013-05-15
        • 2011-09-10
        • 1970-01-01
        相关资源
        最近更新 更多