如何在Ruby :: Sequel中测试非null?

Eri*_*ric 11 ruby sequel

我想做点什么

User.select(...).where(:name != nil)
Run Code Online (Sandbox Code Playgroud)

没有写类似的东西

User.select(...).to_a.find_all {|user| user.name}
Run Code Online (Sandbox Code Playgroud)

我可以选择空值,但不能选择非空值.有没有诀窍,或者在Sequel的域外?

Ale*_*hey 26

你可以用exclude而不是where.

User.select(...).exclude(name: nil)
Run Code Online (Sandbox Code Playgroud)


Mas*_*oud 9

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

在这里阅读更多内容:https ://github.com/jeremyevans/sequel/blob/master/doc/sql.rdoc


zis*_*she 5

你可以这样做:

User.select(...).where('name IS NOT NULL')
Run Code Online (Sandbox Code Playgroud)

  • 这在ActiveRecord之外不起作用。但是,`.where('name is not NULL'.lit)`会。 (2认同)